about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAaron Hill <aa1ronham@gmail.com>2020-11-25 16:52:24 -0500
committerAaron Hill <aa1ronham@gmail.com>2020-11-26 17:08:35 -0500
commit758834d3e2b2589f73b62df386780c8096ed7ae1 (patch)
tree6842676a02f7c1a941aa9c6df3be0ea697b42be3 /src
parentde88bf148b122b27ce48a4a6679c41c834d33019 (diff)
downloadrust-758834d3e2b2589f73b62df386780c8096ed7ae1.tar.gz
rust-758834d3e2b2589f73b62df386780c8096ed7ae1.zip
Only eat semicolons for statements that need them
When parsing a statement (e.g. inside a function body),
we now consider `struct Foo {};` and `$stmt;` to each consist
of two statements: `struct Foo {}` and `;`, and `$stmt` and `;`.

As a result, an attribute macro invoke as
`fn foo() { #[attr] struct Bar{}; }` will see `struct Bar{}` as its
input. Additionally, the 'unused semicolon' lint now fires in more
places.
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/proc-macro/allowed-attr-stmt-expr.stdout7
1 files changed, 1 insertions, 6 deletions
diff --git a/src/test/ui/proc-macro/allowed-attr-stmt-expr.stdout b/src/test/ui/proc-macro/allowed-attr-stmt-expr.stdout
index 189d2383b7b..0b9ce8cdfdb 100644
--- a/src/test/ui/proc-macro/allowed-attr-stmt-expr.stdout
+++ b/src/test/ui/proc-macro/allowed-attr-stmt-expr.stdout
@@ -261,7 +261,7 @@ PRINT-ATTR INPUT (DEBUG): TokenStream [
         span: $DIR/allowed-attr-stmt-expr.rs:53:54: 53:56 (#0),
     },
 ]
-PRINT-ATTR INPUT (DISPLAY): #[rustc_dummy] struct Other { } ;
+PRINT-ATTR INPUT (DISPLAY): #[rustc_dummy] struct Other { }
 PRINT-ATTR INPUT (DEBUG): TokenStream [
     Punct {
         ch: '#',
@@ -291,9 +291,4 @@ PRINT-ATTR INPUT (DEBUG): TokenStream [
         stream: TokenStream [],
         span: $DIR/allowed-attr-stmt-expr.rs:57:18: 57:20 (#0),
     },
-    Punct {
-        ch: ';',
-        spacing: Alone,
-        span: $DIR/allowed-attr-stmt-expr.rs:57:20: 57:21 (#0),
-    },
 ]