about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libsyntax_ext/format.rs2
-rw-r--r--src/test/ui/macros/format-parse-errors.rs1
-rw-r--r--src/test/ui/macros/format-parse-errors.stderr14
3 files changed, 12 insertions, 5 deletions
diff --git a/src/libsyntax_ext/format.rs b/src/libsyntax_ext/format.rs
index 61722ba5516..3e3bca7080f 100644
--- a/src/libsyntax_ext/format.rs
+++ b/src/libsyntax_ext/format.rs
@@ -159,7 +159,7 @@ fn parse_args<'a>(
             };
             let name: &str = &ident.as_str();
 
-            p.expect(&token::Eq).unwrap();
+            p.expect(&token::Eq)?;
             let e = p.parse_expr()?;
             if let Some(prev) = names.get(name) {
                 ecx.struct_span_err(e.span, &format!("duplicate argument named `{}`", name))
diff --git a/src/test/ui/macros/format-parse-errors.rs b/src/test/ui/macros/format-parse-errors.rs
index ba1e441fe33..96aee5e6aee 100644
--- a/src/test/ui/macros/format-parse-errors.rs
+++ b/src/test/ui/macros/format-parse-errors.rs
@@ -2,6 +2,7 @@ fn main() {
     format!(); //~ ERROR requires at least a format string argument
     format!(struct); //~ ERROR expected expression
     format!("s", name =); //~ ERROR expected expression
+    format!("s", foo = foo, bar); //~ ERROR expected `=`
     format!("s", foo = struct); //~ ERROR expected expression
     format!("s", struct); //~ ERROR expected expression
 
diff --git a/src/test/ui/macros/format-parse-errors.stderr b/src/test/ui/macros/format-parse-errors.stderr
index 0463c548901..a3d2786bce1 100644
--- a/src/test/ui/macros/format-parse-errors.stderr
+++ b/src/test/ui/macros/format-parse-errors.stderr
@@ -18,20 +18,26 @@ error: expected expression, found `<eof>`
 LL |     format!("s", name =); //~ ERROR expected expression
    |                       ^ expected expression
 
+error: expected `=`, found `<eof>`
+  --> $DIR/format-parse-errors.rs:5:29
+   |
+LL |     format!("s", foo = foo, bar); //~ ERROR expected `=`
+   |                             ^^^ expected `=`
+
 error: expected expression, found keyword `struct`
-  --> $DIR/format-parse-errors.rs:5:24
+  --> $DIR/format-parse-errors.rs:6:24
    |
 LL |     format!("s", foo = struct); //~ ERROR expected expression
    |                        ^^^^^^ expected expression
 
 error: expected expression, found keyword `struct`
-  --> $DIR/format-parse-errors.rs:6:18
+  --> $DIR/format-parse-errors.rs:7:18
    |
 LL |     format!("s", struct); //~ ERROR expected expression
    |                  ^^^^^^ expected expression
 
 error: format argument must be a string literal
-  --> $DIR/format-parse-errors.rs:9:13
+  --> $DIR/format-parse-errors.rs:10:13
    |
 LL |     format!(123); //~ ERROR format argument must be a string literal
    |             ^^^
@@ -40,5 +46,5 @@ help: you might be missing a string literal to format with
 LL |     format!("{}", 123); //~ ERROR format argument must be a string literal
    |             ^^^^^
 
-error: aborting due to 6 previous errors
+error: aborting due to 7 previous errors