]> git.lizzy.rs Git - rust.git/commitdiff
parse_and_disallow_postfix_after_cast: account for `ExprKind::Err`.
authorMazdak Farrokhzad <twingoow@gmail.com>
Mon, 30 Mar 2020 07:20:55 +0000 (09:20 +0200)
committerMazdak Farrokhzad <twingoow@gmail.com>
Mon, 30 Mar 2020 07:55:57 +0000 (09:55 +0200)
src/librustc_parse/parser/expr.rs
src/test/ui/parser/issue-70552-ascription-in-parens-after-call.rs [new file with mode: 0644]
src/test/ui/parser/issue-70552-ascription-in-parens-after-call.stderr [new file with mode: 0644]

index b205a4b322229da9a3c352993047aff7e6e0d7fe..cbff99f8da612d1200a4110a8dc01608b3f8406f 100644 (file)
@@ -638,6 +638,7 @@ fn parse_and_disallow_postfix_after_cast(
                     ExprKind::MethodCall(_, _) => "a method call",
                     ExprKind::Call(_, _) => "a function call",
                     ExprKind::Await(_) => "`.await`",
+                    ExprKind::Err => return Ok(with_postfix),
                     _ => unreachable!("parse_dot_or_call_expr_with_ shouldn't produce this"),
                 }
             );
diff --git a/src/test/ui/parser/issue-70552-ascription-in-parens-after-call.rs b/src/test/ui/parser/issue-70552-ascription-in-parens-after-call.rs
new file mode 100644 (file)
index 0000000..9b6dd7d
--- /dev/null
@@ -0,0 +1,3 @@
+fn main() {
+    expr as fun()(:); //~ ERROR expected expression
+}
diff --git a/src/test/ui/parser/issue-70552-ascription-in-parens-after-call.stderr b/src/test/ui/parser/issue-70552-ascription-in-parens-after-call.stderr
new file mode 100644 (file)
index 0000000..f03c92e
--- /dev/null
@@ -0,0 +1,8 @@
+error: expected expression, found `:`
+  --> $DIR/issue-70552-ascription-in-parens-after-call.rs:2:19
+   |
+LL |     expr as fun()(:);
+   |                   ^ expected expression
+
+error: aborting due to previous error
+