From dde603757d00936c64aa9c4b96a5b0067999e6d8 Mon Sep 17 00:00:00 2001
From: Chris Wong <lambda.fairy@gmail.com>
Date: Sat, 22 Apr 2017 15:36:07 +1200
Subject: [PATCH] Rename `PResult` to `ParseResult`

---
 maud_macros/src/lib.rs   |  3 +--
 maud_macros/src/parse.rs | 41 ++++++++++++++++++++--------------------
 2 files changed, 21 insertions(+), 23 deletions(-)

diff --git a/maud_macros/src/lib.rs b/maud_macros/src/lib.rs
index f9b291b..dba1944 100644
--- a/maud_macros/src/lib.rs
+++ b/maud_macros/src/lib.rs
@@ -14,7 +14,6 @@ extern crate maud;
 
 use rustc_plugin::Registry;
 use syntax::codemap::Span;
-use syntax::errors::FatalError;
 use syntax::ext::base::{DummyResult, ExtCtxt, MacEager, MacResult};
 use syntax::print::pprust;
 use syntax::tokenstream::TokenTree;
@@ -23,7 +22,7 @@ mod lints;
 mod parse;
 mod render;
 
-type PResult<T> = Result<T, FatalError>;
+type ParseResult<T> = Result<T, ()>;
 
 fn expand_html<'cx>(cx: &'cx mut ExtCtxt, sp: Span, args: &[TokenTree]) -> Box<MacResult + 'cx> {
     match parse::parse(cx, sp, args) {
diff --git a/maud_macros/src/parse.rs b/maud_macros/src/parse.rs
index c6e3e82..9406a97 100644
--- a/maud_macros/src/parse.rs
+++ b/maud_macros/src/parse.rs
@@ -1,7 +1,6 @@
 use std::mem;
 use syntax::ast::LitKind;
 use syntax::codemap::Span;
-use syntax::errors::FatalError;
 use syntax::ext::base::ExtCtxt;
 use syntax::fold::Folder;
 use syntax::parse;
@@ -11,12 +10,12 @@ use syntax::symbol::keywords;
 use syntax::tokenstream::{Delimited, TokenStream, TokenTree};
 
 use super::render::Renderer;
-use super::PResult;
+use super::ParseResult;
 
 macro_rules! error {
     ($cx:expr, $sp:expr, $msg:expr) => ({
         $cx.span_err($sp, $msg);
-        return Err(::syntax::errors::FatalError);
+        return Err(());
     })
 }
 
@@ -63,7 +62,7 @@ macro_rules! keyword {
     ($sp:pat, $x:ident) => (TokenTree::Token($sp, ref $x @ Token::Ident(..)))
 }
 
-pub fn parse(cx: &ExtCtxt, sp: Span, input: &[TokenTree]) -> PResult<Vec<TokenTree>> {
+pub fn parse(cx: &ExtCtxt, sp: Span, input: &[TokenTree]) -> ParseResult<Vec<TokenTree>> {
     let input: Vec<TokenTree> = FlattenNtFolder.fold_tts(input.iter().cloned().collect())
         .into_trees().collect();
     let mut render = Renderer::new(cx);
@@ -109,7 +108,7 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
     }
 
     /// Parses and renders multiple blocks of markup.
-    fn markups(&mut self, render: &mut Renderer) -> PResult<()> {
+    fn markups(&mut self, render: &mut Renderer) -> ParseResult<()> {
         loop {
             match *self.input {
                 [] => return Ok(()),
@@ -120,7 +119,7 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
     }
 
     /// Parses and renders a single block of markup.
-    fn markup(&mut self, render: &mut Renderer) -> PResult<()> {
+    fn markup(&mut self, render: &mut Renderer) -> ParseResult<()> {
         match *self.input {
             // Literal
             [ref tt @ literal!(), ..] => {
@@ -185,9 +184,9 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
     }
 
     /// Parses and renders a literal string.
-    fn literal(&mut self, tt: &TokenTree, render: &mut Renderer) -> PResult<()> {
+    fn literal(&mut self, tt: &TokenTree, render: &mut Renderer) -> ParseResult<()> {
         let mut rust_parser = parse::stream_to_parser(self.cx.parse_sess, tt.clone().into());
-        let lit = rust_parser.parse_lit().map_err(|mut e| { e.emit(); FatalError })?;
+        let lit = rust_parser.parse_lit().map_err(|mut e| e.emit())?;
         if let LitKind::Str(s, _) = lit.node {
             render.string(&s.as_str());
             Ok(())
@@ -199,7 +198,7 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
     /// Parses and renders an `@if` expression.
     ///
     /// The leading `@if` should already be consumed.
-    fn if_expr(&mut self, sp: Span, render: &mut Renderer) -> PResult<()> {
+    fn if_expr(&mut self, sp: Span, render: &mut Renderer) -> ParseResult<()> {
         // Parse the initial if
         let mut if_cond = vec![];
         let if_body;
@@ -242,7 +241,7 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
     /// Parses and renders an `@while` expression.
     ///
     /// The leading `@while` should already be consumed.
-    fn while_expr(&mut self, sp: Span, render: &mut Renderer) -> PResult<()> {
+    fn while_expr(&mut self, sp: Span, render: &mut Renderer) -> ParseResult<()> {
         let mut cond = vec![];
         let body;
         loop { match *self.input {
@@ -264,7 +263,7 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
     /// Parses and renders a `@for` expression.
     ///
     /// The leading `@for` should already be consumed.
-    fn for_expr(&mut self, sp: Span, render: &mut Renderer) -> PResult<()> {
+    fn for_expr(&mut self, sp: Span, render: &mut Renderer) -> ParseResult<()> {
         let mut pattern = vec![];
         loop { match *self.input {
             [keyword!(_, k), ..] if k.is_keyword(keywords::In) => {
@@ -298,7 +297,7 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
     /// Parses and renders a `@match` expression.
     ///
     /// The leading `@match` should already be consumed.
-    fn match_expr(&mut self, sp: Span, render: &mut Renderer) -> PResult<()> {
+    fn match_expr(&mut self, sp: Span, render: &mut Renderer) -> ParseResult<()> {
         // Parse the initial match
         let mut match_var = vec![];
         let match_bodies;
@@ -323,7 +322,7 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
         Ok(())
     }
 
-    fn match_bodies(&mut self, render: &mut Renderer) -> PResult<Vec<TokenTree>> {
+    fn match_bodies(&mut self, render: &mut Renderer) -> ParseResult<Vec<TokenTree>> {
         let mut bodies = Vec::new();
         loop { match *self.input {
             [] => break,
@@ -336,7 +335,7 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
         Ok(bodies)
     }
 
-    fn match_body(&mut self, sp: Span, render: &mut Renderer) -> PResult<Vec<TokenTree>> {
+    fn match_body(&mut self, sp: Span, render: &mut Renderer) -> ParseResult<Vec<TokenTree>> {
         let mut body = vec![];
         loop { match *self.input {
             [ref tt @ fat_arrow!(), ..] => {
@@ -385,7 +384,7 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
     /// Parses and renders a `@let` expression.
     ///
     /// The leading `@let` should already be consumed.
-    fn let_expr(&mut self, sp: Span, render: &mut Renderer) -> PResult<()> {
+    fn let_expr(&mut self, sp: Span, render: &mut Renderer) -> ParseResult<()> {
         let mut pattern = vec![];
         loop { match *self.input {
             [eq!(), ..] => {
@@ -419,7 +418,7 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
     /// Parses and renders an element node.
     ///
     /// The element name should already be consumed.
-    fn element(&mut self, sp: Span, name: &str, render: &mut Renderer) -> PResult<()> {
+    fn element(&mut self, sp: Span, name: &str, render: &mut Renderer) -> ParseResult<()> {
         if self.in_attr {
             error!(self.cx, sp, "unexpected element, you silly bumpkin");
         }
@@ -436,7 +435,7 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
     }
 
     /// Parses and renders the attributes of an element.
-    fn attrs(&mut self, render: &mut Renderer) -> PResult<()> {
+    fn attrs(&mut self, render: &mut Renderer) -> ParseResult<()> {
         let mut classes_static = Vec::new();
         let mut classes_toggled = Vec::new();
         let mut ids = Vec::new();
@@ -531,13 +530,13 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
     }
 
     /// Parses an identifier, without dealing with namespaces.
-    fn name(&mut self) -> PResult<String> {
+    fn name(&mut self) -> ParseResult<String> {
         let mut s = match *self.input {
             [ident!(_, name), ..] => {
                 self.shift(1);
                 String::from(&name.name.as_str() as &str)
             },
-            _ => return Err(FatalError),
+            _ => return Err(()),
         };
         let mut expect_ident = false;
         loop {
@@ -560,7 +559,7 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
 
     /// Parses a HTML element or attribute name, along with a namespace
     /// if necessary.
-    fn namespaced_name(&mut self) -> PResult<String> {
+    fn namespaced_name(&mut self) -> ParseResult<String> {
         let mut s = self.name()?;
         if let [colon!(), ident!(_, _), ..] = *self.input {
             self.shift(1);
@@ -571,7 +570,7 @@ impl<'cx, 'a, 'i> Parser<'cx, 'a, 'i> {
     }
 
     /// Parses the given token tree, returning a vector of statements.
-    fn block(&mut self, sp: Span, tts: TokenStream, render: &mut Renderer) -> PResult<TokenStream> {
+    fn block(&mut self, sp: Span, tts: TokenStream, render: &mut Renderer) -> ParseResult<TokenStream> {
         let mut render = render.fork();
         let mut parse = Parser {
             cx: self.cx,