about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authortopecongiro <seuchida@gmail.com>2019-01-30 00:55:52 +0900
committerSeiichi Uchida <seiichi.uchida@dena.com>2019-02-06 23:06:15 +0900
commitf4f9502ea7b7e87e760f7f2a288829d28f213812 (patch)
tree3e98e9312159b48440afd6f2f914fc5e4c834ee3 /src
parentecde43e06b6ee52b49ce2cc96c35f9db7a1b4058 (diff)
Cargo update
- Update `rustc-ap-*` crates to 366.0.0
- Update the other crates to the latest stable
Diffstat (limited to 'src')
-rw-r--r--src/closures.rs1
-rw-r--r--src/expr.rs1
-rw-r--r--src/macros.rs30
-rw-r--r--src/visitor.rs28
4 files changed, 17 insertions, 43 deletions
diff --git a/src/closures.rs b/src/closures.rs
index 4ec66f06386..a0489718740 100644
--- a/src/closures.rs
+++ b/src/closures.rs
@@ -157,7 +157,6 @@ fn rewrite_closure_with_block(
         id: ast::NodeId::root(),
         rules: ast::BlockCheckMode::Default,
         span: body.span,
-        recovered: false,
     };
     let block =
         crate::expr::rewrite_block_with_visitor(context, "", &block, None, None, shape, false)?;
diff --git a/src/expr.rs b/src/expr.rs
index 0e22134680f..744bc00d0de 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -379,6 +379,7 @@ pub fn format_expr(
                 ))
             }
         }
+        ast::ExprKind::Err => None,
     };
 
     expr_rw
diff --git a/src/macros.rs b/src/macros.rs
index 51cf9db53e8..a1b571ba0ad 100644
--- a/src/macros.rs
+++ b/src/macros.rs
@@ -27,7 +27,7 @@ use syntax::parse::token::{BinOpToken, DelimToken, Token};
 use syntax::print::pprust;
 use syntax::source_map::{BytePos, Span};
 use syntax::symbol;
-use syntax::tokenstream::{Cursor, ThinTokenStream, TokenStream, TokenTree};
+use syntax::tokenstream::{Cursor, TokenStream, TokenTree};
 use syntax::ThinVec;
 use syntax::{ast, parse, ptr};
 
@@ -751,7 +751,7 @@ struct MacroArgParser {
 fn last_tok(tt: &TokenTree) -> Token {
     match *tt {
         TokenTree::Token(_, ref t) => t.clone(),
-        TokenTree::Delimited(_, ref d) => d.close_token(),
+        TokenTree::Delimited(_, delim, _) => Token::CloseDelim(delim),
     }
 }
 
@@ -916,11 +916,11 @@ impl MacroArgParser {
     }
 
     /// Returns a collection of parsed macro def's arguments.
-    pub fn parse(mut self, tokens: ThinTokenStream) -> Option<Vec<ParsedMacroArg>> {
+    pub fn parse(mut self, tokens: TokenStream) -> Option<Vec<ParsedMacroArg>> {
         let stream: TokenStream = tokens.into();
         let mut iter = stream.trees();
 
-        while let Some(ref tok) = iter.next() {
+        while let Some(tok) = iter.next() {
             match tok {
                 TokenTree::Token(sp, Token::Dollar) => {
                     // We always want to add a separator before meta variables.
@@ -937,7 +937,7 @@ impl MacroArgParser {
                     self.add_meta_variable(&mut iter)?;
                 }
                 TokenTree::Token(sp, ref t) => self.update_buffer(sp.lo(), t),
-                TokenTree::Delimited(delimited_span, delimited) => {
+                TokenTree::Delimited(delimited_span, delimited, ref tts) => {
                     if !self.buf.is_empty() {
                         if next_space(&self.last_tok) == SpaceState::Always {
                             self.add_separator();
@@ -949,19 +949,19 @@ impl MacroArgParser {
                     // Parse the stuff inside delimiters.
                     let mut parser = MacroArgParser::new();
                     parser.lo = delimited_span.open.lo();
-                    let delimited_arg = parser.parse(delimited.tts.clone())?;
+                    let delimited_arg = parser.parse(tts.clone())?;
 
                     let span = delimited_span.entire();
                     if self.is_meta_var {
-                        self.add_repeat(delimited_arg, delimited.delim, &mut iter, span)?;
+                        self.add_repeat(delimited_arg, delimited, &mut iter, span)?;
                         self.is_meta_var = false;
                     } else {
-                        self.add_delimited(delimited_arg, delimited.delim, span);
+                        self.add_delimited(delimited_arg, delimited, span);
                     }
                 }
             }
 
-            self.set_last_tok(tok);
+            self.set_last_tok(&tok);
         }
 
         // We are left with some stuff in the buffer. Since there is nothing
@@ -1027,11 +1027,7 @@ fn wrap_macro_args_inner(
 //
 // We always try and format on one line.
 // FIXME: Use multi-line when every thing does not fit on one line.
-fn format_macro_args(
-    context: &RewriteContext,
-    toks: ThinTokenStream,
-    shape: Shape,
-) -> Option<String> {
+fn format_macro_args(context: &RewriteContext, toks: TokenStream, shape: Shape) -> Option<String> {
     if !context.config.format_macro_matchers() {
         let token_stream: TokenStream = toks.into();
         let span = span_for_token_stream(&token_stream);
@@ -1176,7 +1172,7 @@ impl MacroParser {
         let tok = self.toks.next()?;
         let (lo, args_paren_kind) = match tok {
             TokenTree::Token(..) => return None,
-            TokenTree::Delimited(delimited_span, ref d) => (delimited_span.open.lo(), d.delim),
+            TokenTree::Delimited(delimited_span, d, _) => (delimited_span.open.lo(), d),
         };
         let args = tok.joint().into();
         match self.toks.next()? {
@@ -1185,7 +1181,7 @@ impl MacroParser {
         }
         let (mut hi, body, whole_body) = match self.toks.next()? {
             TokenTree::Token(..) => return None,
-            TokenTree::Delimited(delimited_span, _) => {
+            TokenTree::Delimited(delimited_span, ..) => {
                 let data = delimited_span.entire().data();
                 (
                     data.hi,
@@ -1218,7 +1214,7 @@ struct Macro {
 struct MacroBranch {
     span: Span,
     args_paren_kind: DelimToken,
-    args: ThinTokenStream,
+    args: TokenStream,
     body: Span,
     whole_body: Span,
 }
diff --git a/src/visitor.rs b/src/visitor.rs
index 029905f7e80..a677ce6c985 100644
--- a/src/visitor.rs
+++ b/src/visitor.rs
@@ -10,7 +10,6 @@
 
 use std::cell::RefCell;
 
-use syntax::attr::HasAttrs;
 use syntax::parse::ParseSess;
 use syntax::source_map::{self, BytePos, Pos, SourceMap, Span};
 use syntax::{ast, visit};
@@ -152,32 +151,11 @@ impl<'b, 'a: 'b> FmtVisitor<'a> {
         self.push_str("{");
 
         if let Some(first_stmt) = b.stmts.first() {
-            let attr_lo = inner_attrs
+            let hi = inner_attrs
                 .and_then(|attrs| inner_attributes(attrs).first().map(|attr| attr.span.lo()))
-                .or_else(|| {
-                    // Attributes for an item in a statement position
-                    // do not belong to the statement. (rust-lang/rust#34459)
-                    if let ast::StmtKind::Item(ref item) = first_stmt.node {
-                        item.attrs.first()
-                    } else {
-                        first_stmt.attrs().first()
-                    }
-                    .and_then(|attr| {
-                        // Some stmts can have embedded attributes.
-                        // e.g. `match { #![attr] ... }`
-                        let attr_lo = attr.span.lo();
-                        if attr_lo < first_stmt.span.lo() {
-                            Some(attr_lo)
-                        } else {
-                            None
-                        }
-                    })
-                });
+                .unwrap_or(first_stmt.span().lo());
 
-            let snippet = self.snippet(mk_sp(
-                self.last_pos,
-                attr_lo.unwrap_or_else(|| first_stmt.span.lo()),
-            ));
+            let snippet = self.snippet(mk_sp(self.last_pos, hi));
             let len = CommentCodeSlices::new(snippet)
                 .nth(0)
                 .and_then(|(kind, _, s)| {