Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EXPERIMENT] Error on trailing semicolons in macro expressions #81477

Closed

Conversation

Aaron1011
Copy link
Member

Opening to gather data about the impact of changing the lint level of #79819

@rust-highfive
Copy link
Collaborator

r? @matthewjasper

(rust-highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jan 28, 2021
@Aaron1011
Copy link
Member Author

r? @ghost

@Aaron1011
Copy link
Member Author

@bors try

@bors
Copy link
Contributor

bors commented Jan 28, 2021

⌛ Trying commit 141b6b98a38fb221d51227e28f48f6312808d9f4 with merge 9875c9190db1d3775f84131efefcfbad85103698...

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Contributor

bors commented Jan 28, 2021

💔 Test failed - checks-actions

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 28, 2021
@bors
Copy link
Contributor

bors commented Jan 29, 2021

☔ The latest upstream changes (presumably #81493) made this pull request unmergeable. Please resolve the merge conflicts.

@Aaron1011 Aaron1011 force-pushed the deny-macro-trailing-semi branch from 141b6b9 to 83c4066 Compare February 9, 2021 19:30
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@Aaron1011
Copy link
Member Author

@bors try

@bors
Copy link
Contributor

bors commented Feb 11, 2021

⌛ Trying commit e8ebb7790ac9622903262bc601dc0baf30fa4a4e with merge ccda0f2da3f1d0df2e31f688ee886472887592d9...

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Contributor

bors commented Feb 11, 2021

💔 Test failed - checks-actions

@Aaron1011 Aaron1011 force-pushed the deny-macro-trailing-semi branch from e8ebb77 to 4c69659 Compare February 12, 2021 20:14
@rust-log-analyzer

This comment has been minimized.

@Aaron1011
Copy link
Member Author

@bors try

@bors
Copy link
Contributor

bors commented Feb 12, 2021

⌛ Trying commit 4c6965903163a93ef7fdaa9f37c3e86ac2521d9a with merge c0a7fc884519e3ff9d2e25a85f2bf00e9e522efa...

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Contributor

bors commented Feb 12, 2021

💔 Test failed - checks-actions

@crlf0710 crlf0710 removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Mar 5, 2021
@Aaron1011 Aaron1011 force-pushed the deny-macro-trailing-semi branch from 4129a0d to e661f9f Compare July 4, 2021 20:00
@Aaron1011
Copy link
Member Author

@bors try

@bors
Copy link
Contributor

bors commented Jul 4, 2021

⌛ Trying commit e661f9f with merge 3d9fdbff4f377de96b3a51174e7a64086bee9a5c...

@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-10 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)

#################################################                         68.5%
######################################################################## 100.0%
extracting /checkout/obj/build/cache/2021-03-25/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz
    Updating git repository `https://github.com/webdesus/fs_extra`
---
.....................................i.............................................................. 3900/12044
.................................................................................................... 4000/12044
.................................................................................................... 4100/12044
.................................................................................................... 4200/12044
.F..F...........F................................................................................... 4300/12044
.................................................................................................... 4500/12044
......................................ii............................................................ 4600/12044
..................................i................................................................. 4700/12044
.................................................................................................... 4800/12044
---
........................................................................................ii.ii....... 6400/12044
i...i............................................................................................... 6500/12044
..................................i....i..................................i......................... 6600/12044
..i................................................................................................. 6700/12044
..........................................i..................................F..F................... 6800/12044
.................................................................................................... 6900/12044
................................................ii...............F........................F........i 7000/12044
............F....................................................................................... 7100/12044
......F............................................................................................. 7200/12044
...........................................................................................ii....... 7400/12044
.........i..i..ii................................................................................... 7500/12044
.................................................................................................... 7600/12044
.................................................................................................... 7700/12044
---

+ error: Trailing semicolon in macro
+   --> $DIR/hygienic-label-1.rs:2:21
+    |
+ LL |     () => { break 'x; }
+ ...
+ ...
+ LL |     'x: loop { foo!() }
+    |
+    = note: this error originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)
+ 
1 error[E0426]: use of undeclared label `'x`
---
Some tests failed in compiletest suite=ui mode=ui host=x86_64-unknown-linux-gnu target=x86_64-unknown-linux-gnu


The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/hygiene/hygienic-label-1/hygienic-label-1.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args hygiene/hygienic-label-1.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/hygiene/hygienic-label-1.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zemit-future-incompat-report" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/hygiene/hygienic-label-1" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/hygiene/hygienic-label-1/auxiliary"
------------------------------------------

------------------------------------------
stderr:
stderr:
------------------------------------------
error: Trailing semicolon in macro
  --> /checkout/src/test/ui/hygiene/hygienic-label-1.rs:2:21
   |
LL |     () => { break 'x; } //~ ERROR use of undeclared label `'x`
...
...
LL |     'x: loop { foo!() }
   |
   = note: this error originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0426]: use of undeclared label `'x`
error[E0426]: use of undeclared label `'x`
  --> /checkout/src/test/ui/hygiene/hygienic-label-1.rs:2:19
   |
LL |     () => { break 'x; } //~ ERROR use of undeclared label `'x`
   |                   ^^ undeclared label `'x`
...
LL |     'x: loop { foo!() }
   |
   = note: this error originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to 2 previous errors
---

+ error: Trailing semicolon in macro
+   --> $DIR/hygienic-label-3.rs:2:21
+    |
+ LL |     () => { break 'x; }
+ ...
+ ...
+ LL |         foo!()
+    |
+    = note: this error originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)
+ 
1 error[E0426]: use of undeclared label `'x`
---
15 


The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/hygiene/hygienic-label-3/hygienic-label-3.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args hygiene/hygienic-label-3.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/hygiene/hygienic-label-3.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zemit-future-incompat-report" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/hygiene/hygienic-label-3" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/hygiene/hygienic-label-3/auxiliary"
------------------------------------------

------------------------------------------
stderr:
stderr:
------------------------------------------
error: Trailing semicolon in macro
  --> /checkout/src/test/ui/hygiene/hygienic-label-3.rs:2:21
   |
LL |     () => { break 'x; } //~ ERROR use of undeclared label `'x`
...
LL |         foo!()
   |         ------ in this macro invocation
   |
   |
   = note: this error originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0426]: use of undeclared label `'x`
  --> /checkout/src/test/ui/hygiene/hygienic-label-3.rs:2:19
   |
LL |     () => { break 'x; } //~ ERROR use of undeclared label `'x`
   |                   ^^ undeclared label `'x`
LL |         foo!()
   |         ------ in this macro invocation
   |
   = note: this error originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)
---

---- [ui] ui/hygiene/intercrate.rs stdout ----
diff of stderr:

- error: type `fn() -> u32 {foo::bar::f}` is private
+ error: Trailing semicolon in macro
3    |
3    |
4 LL |     assert_eq!(intercrate::foo::m!(), 1);
-    |                ^^^^^^^^^^^^^^^^^^^^^ private type
+    |                ^^^^^^^^^^^^^^^^^^^^^
6    |
6    |
7    = note: this error originates in the macro `intercrate::foo::m` (in Nightly builds, run with -Z macro-backtrace for more info)


The actual stderr differed from the expected stderr.
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/hygiene/intercrate/intercrate.stderr
Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/hygiene/intercrate/intercrate.stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args hygiene/intercrate.rs`
error: 1 errors occurred comparing output.
status: exit status: 1
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/hygiene/intercrate.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zemit-future-incompat-report" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/hygiene/intercrate" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/hygiene/intercrate/auxiliary"
------------------------------------------

------------------------------------------
stderr:
stderr:
------------------------------------------
error: Trailing semicolon in macro
  --> /checkout/src/test/ui/hygiene/intercrate.rs:10:16
   |
LL |     assert_eq!(intercrate::foo::m!(), 1);
   |
   |
   = note: this error originates in the macro `intercrate::foo::m` (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to previous error


------------------------------------------
------------------------------------------


---- [ui] ui/lint/semicolon-in-expressions-from-macros/allow-semicolon-in-expressions-from-macros.rs stdout ----

error: test compilation failed although it shouldn't!
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/lint/semicolon-in-expressions-from-macros/allow-semicolon-in-expressions-from-macros.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zemit-future-incompat-report" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lint/semicolon-in-expressions-from-macros/allow-semicolon-in-expressions-from-macros" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lint/semicolon-in-expressions-from-macros/allow-semicolon-in-expressions-from-macros/auxiliary"
------------------------------------------

------------------------------------------
stderr:
---


---- [ui] ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros.rs stdout ----

error: test compilation failed although it shouldn't!
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zemit-future-incompat-report" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2018" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros/auxiliary"
------------------------------------------

------------------------------------------
stderr:
stderr:
------------------------------------------
error: Trailing semicolon in macro
  --> /checkout/src/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros.rs:8:13
   |
LL |         true; //~ WARN trailing
...
...
LL |         foo!(first)
   |
   = note: this error originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)

error: Trailing semicolon in macro
error: Trailing semicolon in macro
  --> /checkout/src/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros.rs:8:13
   |
LL |         true; //~ WARN trailing
...
...
LL |     let _ = foo!(second);
   |
   = note: this error originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)

error: Trailing semicolon in macro
error: Trailing semicolon in macro
  --> /checkout/src/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros.rs:8:13
   |
LL |         true; //~ WARN trailing
...
...
LL |         let _ = foo!(third);
   |
   = note: this error originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)

error: Trailing semicolon in macro
error: Trailing semicolon in macro
  --> /checkout/src/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros.rs:8:13
   |
LL |         true; //~ WARN trailing
...
...
LL |         let _ = foo!(fourth);
   |
   = note: this error originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: trailing semicolon in macro used in expression position
warning: trailing semicolon in macro used in expression position
  --> /checkout/src/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros.rs:8:13
   |
LL |         true; //~ WARN trailing
...
...
LL |         foo!(first)
   |
note: the lint level is defined here
  --> /checkout/src/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros.rs:3:9
   |
---

warning: trailing semicolon in macro used in expression position
  --> /checkout/src/test/ui/lint/semicolon-in-expressions-from-macros/semicolon-in-expressions-from-macros.rs:8:13
   |
LL |         true; //~ WARN trailing
...
...
LL |     let _ = foo!(second);
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
   = note: this warning originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)
---

+ error: Trailing semicolon in macro
+   --> $DIR/issue-84195-lint-anon-const.rs:8:14
+    |
+ LL |     () => { 0; };
+ ...
+ ...
+ LL |     let val: [u8; len!()] = [];
+    |
+    |
+    = note: this error originates in the macro `len` (in Nightly builds, run with -Z macro-backtrace for more info)
1 error: trailing semicolon in macro used in expression position
2   --> $DIR/issue-84195-lint-anon-const.rs:8:14
3    |


16    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
17    = note: this error originates in the macro `len` (in Nightly builds, run with -Z macro-backtrace for more info)
- error: aborting due to previous error
+ error: aborting due to 2 previous errors
20 
21 
---
To only update this specific test, also pass `--test-args macros/issue-84195-lint-anon-const.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/macros/issue-84195-lint-anon-const.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zemit-future-incompat-report" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/macros/issue-84195-lint-anon-const" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/macros/issue-84195-lint-anon-const/auxiliary"
------------------------------------------

------------------------------------------
stderr:
stderr:
------------------------------------------
error: Trailing semicolon in macro
  --> /checkout/src/test/ui/macros/issue-84195-lint-anon-const.rs:8:14
   |
LL |     () => { 0; }; //~  ERROR trailing semicolon
...
...
LL |     let val: [u8; len!()] = [];
   |
   |
   = note: this error originates in the macro `len` (in Nightly builds, run with -Z macro-backtrace for more info)
error: trailing semicolon in macro used in expression position
  --> /checkout/src/test/ui/macros/issue-84195-lint-anon-const.rs:8:14
   |
   |
LL |     () => { 0; }; //~  ERROR trailing semicolon
...
...
LL |     let val: [u8; len!()] = [];
   |
note: the lint level is defined here
  --> /checkout/src/test/ui/macros/issue-84195-lint-anon-const.rs:5:9
   |
   |
LL | #![deny(semicolon_in_expressions_from_macros)]
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
   = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
   = note: this error originates in the macro `len` (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to 2 previous errors


------------------------------------------
------------------------------------------


---- [ui] ui/macros/macro-context.rs stdout ----
diff of stderr:

9    |
10    = note: the usage of `m!` is likely invalid in type context
+ error: Trailing semicolon in macro
+   --> $DIR/macro-context.rs:3:15
+    |
+    |
+ LL |     () => ( i ; typeof );
+ ...
+ ...
+ LL |     let i = m!();
+    |
+    |
+    = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
+ 
12 error: macro expansion ignores token `typeof` and any following
14    |

64    |
64    |
65    = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
- error: aborting due to 6 previous errors
+ error: aborting due to 7 previous errors
68 
69 Some errors have detailed explanations: E0412, E0425.
---
To only update this specific test, also pass `--test-args macros/macro-context.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/macros/macro-context.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zemit-future-incompat-report" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/macros/macro-context" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/macros/macro-context/auxiliary"
------------------------------------------

------------------------------------------
stderr:
stderr:
------------------------------------------
error: macro expansion ignores token `;` and any following
   |
   |
LL |     () => ( i ; typeof );   //~ ERROR expected expression, found reserved keyword `typeof`
...
...
LL |     let a: m!();
   |            ---- caused by the macro expansion here
   |
   = note: the usage of `m!` is likely invalid in type context
error: Trailing semicolon in macro
  --> /checkout/src/test/ui/macros/macro-context.rs:3:15
   |
   |
LL |     () => ( i ; typeof );   //~ ERROR expected expression, found reserved keyword `typeof`
...
LL |     let i = m!();
   |             ---- in this macro invocation
   |
   |
   = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)

error: macro expansion ignores token `typeof` and any following
   |
   |
LL |     () => ( i ; typeof );   //~ ERROR expected expression, found reserved keyword `typeof`
...
LL |     let i = m!();
LL |     let i = m!();
   |             ---- caused by the macro expansion here
   |
   = note: the usage of `m!` is likely invalid in expression context

error: macro expansion ignores token `;` and any following
   |
   |
LL |     () => ( i ; typeof );   //~ ERROR expected expression, found reserved keyword `typeof`
...
...
LL |         m!() => {}
   |         ---- caused by the macro expansion here
   |
   = note: the usage of `m!` is likely invalid in pattern context

error: expected expression, found reserved keyword `typeof`
   |
   |
LL |     () => ( i ; typeof );   //~ ERROR expected expression, found reserved keyword `typeof`
...
LL |     m!();
   |     ----- in this macro invocation
   |
   |
   = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0412]: cannot find type `i` in this scope
  --> /checkout/src/test/ui/macros/macro-context.rs:3:13
   |
   |
LL |     () => ( i ; typeof );   //~ ERROR expected expression, found reserved keyword `typeof`
   |             ^ help: a builtin type with a similar name exists: `i8`
...
LL |     let a: m!();
   |
   |
   = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0425]: cannot find value `i` in this scope
  --> /checkout/src/test/ui/macros/macro-context.rs:3:13
   |
   |
LL |     () => ( i ; typeof );   //~ ERROR expected expression, found reserved keyword `typeof`
   |             ^ help: a local variable with a similar name exists: `a`
LL |     let i = m!();
   |             ---- in this macro invocation
   |
   |
   = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to 7 previous errors

Some errors have detailed explanations: E0412, E0425.
For more information about an error, try `rustc --explain E0412`.
---

+ error: Trailing semicolon in macro
+   --> $DIR/macro-in-expression-context.rs:5:29
+    |
+ LL |         assert_eq!("A", "A");
+ ...
+ ...
+ LL |     foo!()
+    |
+    = note: this error originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)
+ 
+ 
1 error: macro expansion ignores token `assert_eq` and any following
3    |

11    |
11    |
12    = note: the usage of `foo!` is likely invalid in expression context
- error: aborting due to previous error
+ error: aborting due to 2 previous errors
15 
16 
---
To only update this specific test, also pass `--test-args macros/macro-in-expression-context.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/macros/macro-in-expression-context.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zemit-future-incompat-report" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/macros/macro-in-expression-context" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/macros/macro-in-expression-context/auxiliary"
------------------------------------------

------------------------------------------
stderr:
stderr:
------------------------------------------
error: Trailing semicolon in macro
  --> /checkout/src/test/ui/macros/macro-in-expression-context.rs:5:29
   |
LL |         assert_eq!("A", "A");
...
LL |     foo!()
   |     ------ in this macro invocation
   |
   |
   = note: this error originates in the macro `foo` (in Nightly builds, run with -Z macro-backtrace for more info)

error: macro expansion ignores token `assert_eq` and any following
   |
   |
LL |         assert_eq!("B", "B");
...
LL |     foo!()
LL |     foo!()
   |     ------- help: you might be missing a semicolon here: `;`
   |     caused by the macro expansion here
   |
   |
   = note: the usage of `foo!` is likely invalid in expression context
error: aborting due to 2 previous errors


------------------------------------------
------------------------------------------


---- [ui] ui/macros/trace_faulty_macros.rs stdout ----
diff of stderr:

49    = note: expanding `my_recursive_macro! {  }`
50    = note: to `my_recursive_macro! () ;`
+ error: Trailing semicolon in macro
+   --> $DIR/trace_faulty_macros.rs:13:41
+    |
+    |
+ LL |         pat_macro!(A{a:a, b:0, c:_, ..});
+ ...
+ ...
+ LL |     let a = pat_macro!();
+    |
+    = note: this error originates in the macro `pat_macro` (in Nightly builds, run with -Z macro-backtrace for more info)
+ 
+ 
52 error: expected expression, found `A { a: a, b: 0, c: _, .. }`
54    |


77    = note: expanding `pat_macro! { A { a : a, b : 0, c : _, .. } }`
78    = note: to `A { a: a, b: 0, c: _, .. }`
- error: aborting due to 4 previous errors
+ error: aborting due to 5 previous errors
81 
82 For more information about this error, try `rustc --explain E0774`.
---
To only update this specific test, also pass `--test-args macros/trace_faulty_macros.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/macros/trace_faulty_macros.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zemit-future-incompat-report" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/macros/trace_faulty_macros" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-Z" "trace-macros" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/macros/trace_faulty_macros/auxiliary"
------------------------------------------

------------------------------------------
stderr:
stderr:
------------------------------------------
error: no rules expected the token `bcd`
   |
   |
LL | macro_rules! my_faulty_macro {
   | ---------------------------- when calling this macro
LL |     () => {
LL |         my_faulty_macro!(bcd); //~ ERROR no rules
   |                          ^^^ no rules expected this token in macro call
...
LL |     my_faulty_macro!();
   |
   |
   = note: this error originates in the macro `my_faulty_macro` (in Nightly builds, run with -Z macro-backtrace for more info)
note: trace_macro
  --> /checkout/src/test/ui/macros/trace_faulty_macros.rs:31:5
   |
   |
LL |     my_faulty_macro!();
   |
   |
   = note: expanding `my_faulty_macro! {  }`
   = note: to `my_faulty_macro! (bcd) ;`
   = note: expanding `my_faulty_macro! { bcd }`

error: recursion limit reached while expanding `my_recursive_macro!`
   |
   |
LL |         my_recursive_macro!(); //~ ERROR recursion limit
...
...
LL |     my_recursive_macro!();
   |
   |
   = help: consider adding a `#![recursion_limit="8"]` attribute to your crate (`trace_faulty_macros`)
   = note: this error originates in the macro `my_recursive_macro` (in Nightly builds, run with -Z macro-backtrace for more info)
note: trace_macro
  --> /checkout/src/test/ui/macros/trace_faulty_macros.rs:32:5
   |
   |
LL |     my_recursive_macro!();
   |
   |
   = note: expanding `my_recursive_macro! {  }`
   = note: to `my_recursive_macro! () ;`
   = note: expanding `my_recursive_macro! {  }`
   = note: to `my_recursive_macro! () ;`
   = note: expanding `my_recursive_macro! {  }`
   = note: to `my_recursive_macro! () ;`
   = note: expanding `my_recursive_macro! {  }`
   = note: to `my_recursive_macro! () ;`
error: Trailing semicolon in macro
  --> /checkout/src/test/ui/macros/trace_faulty_macros.rs:13:41
   |
   |
LL |         pat_macro!(A{a:a, b:0, c:_, ..});
...
...
LL |     let a = pat_macro!();
   |
   = note: this error originates in the macro `pat_macro` (in Nightly builds, run with -Z macro-backtrace for more info)


error: expected expression, found `A { a: a, b: 0, c: _, .. }`
   |
   |
LL |         $a //~ ERROR expected expression
...
...
LL |     let a = pat_macro!();
   |
   = note: this error originates in the macro `pat_macro` (in Nightly builds, run with -Z macro-backtrace for more info)


error[E0774]: `derive` may only be applied to structs, enums and unions
   |
   |
LL | #[derive(Debug)] //~ ERROR `derive` may only be applied to structs

note: trace_macro
  --> /checkout/src/test/ui/macros/trace_faulty_macros.rs:36:13
   |
   |
LL |     let a = pat_macro!();
   |
   |
   = note: expanding `pat_macro! {  }`
   = note: to `pat_macro! (A { a : a, b : 0, c : _, .. }) ;`
   = note: expanding `pat_macro! { A { a : a, b : 0, c : _, .. } }`
   = note: to `A { a: a, b: 0, c: _, .. }`
error: aborting due to 5 previous errors

For more information about this error, try `rustc --explain E0774`.


------------------------------------------


---- [ui] ui/proc-macro/nested-nonterminal-tokens.rs stdout ----

error: test compilation failed although it shouldn't!
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/proc-macro/nested-nonterminal-tokens.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zemit-future-incompat-report" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/proc-macro/nested-nonterminal-tokens" "-A" "unused" "-Crpath" "-O" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2018" "-Z" "span-debug" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/proc-macro/nested-nonterminal-tokens/auxiliary"
------------------------------------------
------------------------------------------
PRINT-BANG INPUT (DISPLAY): 0 + 1 + 2 + 3
PRINT-BANG INPUT (DEBUG): TokenStream [
    Group {
        delimiter: None,
        stream: TokenStream [
            Group {
                delimiter: None,
                stream: TokenStream [
                    Group {
                        delimiter: None,
                        stream: TokenStream [
                            Literal {
                                kind: Integer,
                                symbol: "0",
                                suffix: None,
                                span: /checkout/src/test/ui/proc-macro/nested-nonterminal-tokens.rs:25:26: 25:27 (#0),
                        ],
                        ],
                        span: /checkout/src/test/ui/proc-macro/nested-nonterminal-tokens.rs:17:41: 17:43 (#4),
                    Punct {
                    Punct {
                        ch: '+',
                        spacing: Alone,
                        span: /checkout/src/test/ui/proc-macro/nested-nonterminal-tokens.rs:17:44: 17:45 (#4),
                    Literal {
                        kind: Integer,
                        symbol: "1",
                        suffix: None,
                        suffix: None,
                        span: /checkout/src/test/ui/proc-macro/nested-nonterminal-tokens.rs:17:46: 17:47 (#4),
                ],
                ],
                span: /checkout/src/test/ui/proc-macro/nested-nonterminal-tokens.rs:18:41: 18:43 (#5),
            Punct {
            Punct {
                ch: '+',
                spacing: Alone,
                span: /checkout/src/test/ui/proc-macro/nested-nonterminal-tokens.rs:18:44: 18:45 (#5),
            Literal {
                kind: Integer,
                symbol: "2",
                suffix: None,
                suffix: None,
                span: /checkout/src/test/ui/proc-macro/nested-nonterminal-tokens.rs:18:46: 18:47 (#5),
        ],
        ],
        span: /checkout/src/test/ui/proc-macro/nested-nonterminal-tokens.rs:20:21: 20:23 (#6),
    Punct {
    Punct {
        ch: '+',
        spacing: Alone,
        span: /checkout/src/test/ui/proc-macro/nested-nonterminal-tokens.rs:20:24: 20:25 (#6),
    Literal {
        kind: Integer,
        symbol: "3",
        suffix: None,
        suffix: None,
        span: /checkout/src/test/ui/proc-macro/nested-nonterminal-tokens.rs:20:26: 20:27 (#6),
]

------------------------------------------
stderr:
stderr:
------------------------------------------
error: Trailing semicolon in macro
  --> /checkout/src/test/ui/proc-macro/nested-nonterminal-tokens.rs:20:28
   |
LL |         print_bang!($e + 3);
...
...
LL |     let _ = wrap!(first, 0);
   |
   |
   = note: this error originates in the macro `wrap` (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to previous error


------------------------------------------
---
test result: FAILED. 11937 passed; 10 failed; 97 ignored; 0 measured; 0 filtered out; finished in 124.12s



command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--suite" "ui" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-10/bin/FileCheck" "--nodejs" "/usr/bin/node" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python3" "--lldb-python" "/usr/bin/python3" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "10.0.0" "--llvm-components" "aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils aggressiveinstcombine all all-targets amdgpu amdgpuasmparser amdgpucodegen amdgpudesc amdgpudisassembler amdgpuinfo amdgpuutils analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter avr avrasmparser avrcodegen avrdesc avrdisassembler avrinfo binaryformat bitreader bitstreamreader bitwriter bpf bpfasmparser bpfcodegen bpfdesc bpfdisassembler bpfinfo cfguard codegen core coroutines coverage debuginfocodeview debuginfodwarf debuginfogsym debuginfomsf debuginfopdb demangle dlltooldriver dwarflinker engine executionengine frontendopenmp fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo instcombine instrumentation interpreter ipo irreader jitlink lanai lanaiasmparser lanaicodegen lanaidesc lanaidisassembler lanaiinfo libdriver lineeditor linker lto mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts object objectyaml option orcerror orcjit passes perfjitevents powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvutils runtimedyld scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target textapi transformutils vectorize webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info x86utils xcore xcorecodegen xcoredesc xcoredisassembler xcoreinfo xray" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--channel" "nightly" "--color" "always"


failed to run: /checkout/obj/build/bootstrap/debug/bootstrap --stage 2 test --exclude src/tools/tidy
Build completed unsuccessfully in 0:12:46

@bors
Copy link
Contributor

bors commented Jul 4, 2021

☀️ Try build successful - checks-actions
Build commit: 3d9fdbff4f377de96b3a51174e7a64086bee9a5c (3d9fdbff4f377de96b3a51174e7a64086bee9a5c)

@Aaron1011
Copy link
Member Author

@craterbot check

@craterbot
Copy link
Collaborator

👌 Experiment pr-81477 created and queued.
🤖 Automatically detected try build 3d9fdbff4f377de96b3a51174e7a64086bee9a5c
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-experimental Status: Ongoing experiment that does not require reviewing and won't be merged in its current state. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jul 4, 2021
@craterbot
Copy link
Collaborator

🚧 Experiment pr-81477 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot
Copy link
Collaborator

🎉 Experiment pr-81477 is completed!
📊 25286 regressed and 7 fixed (171247 total)
📰 Open the full report.

⚠️ If you notice any spurious failure please add them to the blacklist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-crater Status: Waiting on a crater run to be completed. labels Jul 9, 2021
@JohnCSimon JohnCSimon added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 25, 2021
@jyn514 jyn514 added S-experimental Status: Ongoing experiment that does not require reviewing and won't be merged in its current state. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 25, 2021
@Aaron1011
Copy link
Member Author

The Crater run is complete, so this PR has run its course.

@Aaron1011 Aaron1011 closed this Jul 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-experimental Status: Ongoing experiment that does not require reviewing and won't be merged in its current state.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants