Skip to content

Fix redundant semicolon lint interaction with proc macro attributes - #64387

Merged
bors merged 2 commits into
rust-lang:masterfrom
nathanwhit:redundant-semi-fix
Sep 29, 2019
Merged

Fix redundant semicolon lint interaction with proc macro attributes#64387
bors merged 2 commits into
rust-lang:masterfrom
nathanwhit:redundant-semi-fix

Conversation

@nathanwhit

@nathanwhitnathanwhit commented Sep 11, 2019

Copy link
Copy Markdown
Contributor

Fixes#63967 and fixes#63947, both of which were caused by the lint's changes to the parser interacting poorly with proc macro attributes and causing span information to be lost

r? @varkor

@rust-highfiverust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 11, 2019
Comment threadsrc/libsyntax/print/pprust.rs Outdated
Comment threadsrc/libsyntax/print/pprust.rs Outdated
Comment threadsrc/test/ui/lint/redundant-semicolon/redundant-semi-proc-macro.rs Outdated
Comment threadsrc/test/ui/lint/redundant-semicolon/redundant-semi-proc-macro.rs Outdated
Comment threadsrc/test/ui/lint/redundant-semicolon/redundant-semi-proc-macro.rs Outdated
@rust-highfive

Copy link
Copy Markdown
Contributor

The job x86_64-gnu-llvm-6.0 of your PR failed (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2019-09-11T21:42:13.1296087Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-09-11T21:42:13.1495763Z ##[command]git config gc.auto 0
2019-09-11T21:42:13.1583896Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-09-11T21:42:13.1641573Z ##[command]git config --get-all http.proxy
2019-09-11T21:42:13.1793398Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/64387/merge:refs/remotes/pull/64387/merge
---
2019-09-11T22:50:39.8704966Z .................................................................................................... 1500/9010
2019-09-11T22:50:45.4811676Z .................................................................................................... 1600/9010
2019-09-11T22:50:59.5969948Z .........................................................i...............i.......................... 1700/9010
2019-09-11T22:51:08.5743834Z .................................................................................................... 1800/9010
2019-09-11T22:51:24.9734874Z ................................................iiiii............................................... 1900/9010
2019-09-11T22:51:37.5519451Z .................................................................................................... 2100/9010
2019-09-11T22:51:40.5830722Z .................................................................................................... 2200/9010
2019-09-11T22:51:44.7777934Z .................................................................................................... 2300/9010
2019-09-11T22:51:53.9571256Z .................................................................................................... 2400/9010
---
2019-09-11T22:55:13.2296002Z ...................................i...............i................................................ 4700/9010
2019-09-11T22:55:25.8577303Z .................................................................................................... 4800/9010
2019-09-11T22:55:33.2570543Z .................................................................................................... 4900/9010
2019-09-11T22:55:45.2653307Z .................................................................................................... 5000/9010
2019-09-11T22:55:52.2772908Z ..................ii.ii............................................................................. 5100/9010
2019-09-11T22:56:04.0954618Z .................................................................................................... 5300/9010
2019-09-11T22:56:15.5761021Z ..................................................................................i................. 5400/9010
2019-09-11T22:56:24.6134760Z .................................................................................................... 5500/9010
2019-09-11T22:56:30.9678712Z .................................................................................................... 5600/9010
2019-09-11T22:56:30.9678712Z .................................................................................................... 5600/9010
2019-09-11T22:56:42.6865999Z .............................................................................ii..i..ii...........i.. 5700/9010
2019-09-11T22:57:11.1428578Z .................................................................................................... 5900/9010
2019-09-11T22:57:22.0234212Z .................................................................................................... 6000/9010
2019-09-11T22:57:22.0234212Z .................................................................................................... 6000/9010
2019-09-11T22:57:31.8179800Z ..............................................................................i..ii................. 6100/9010
2019-09-11T22:58:05.1102248Z .................................................................................................... 6300/9010
2019-09-11T22:58:07.5784993Z .....................................i.............................................................. 6400/9010
2019-09-11T22:58:10.0547463Z .................................................................................................... 6500/9010
2019-09-11T22:58:13.0419157Z .........i.......................................................................................... 6600/9010
---
2019-09-11T23:03:18.4325372Z finished in 5.747
2019-09-11T23:03:18.4568592Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-11T23:03:18.6415149Z 2019-09-11T23:03:18.6415435Z running 150 tests
2019-09-11T23:03:22.4067382Z i....iii......iii..iiii....i.............................i..i..................i....i.........ii.i.i 100/150
2019-09-11T23:03:24.7098284Z ..iiii..............i.........iii.i.......ii......
2019-09-11T23:03:24.7100618Z 2019-09-11T23:03:24.7108615Z finished in 6.254
2019-09-11T23:03:24.7333509Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-11T23:03:24.9126309Z ---
2019-09-11T23:03:27.2512201Z finished in 2.518
2019-09-11T23:03:27.2713178Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-11T23:03:27.4428125Z 2019-09-11T23:03:27.4428439Z running 9 tests
2019-09-11T23:03:27.4429910Z iiiiiiiii
2019-09-11T23:03:27.4430634Z 2019-09-11T23:03:27.4433003Z finished in 0.171
2019-09-11T23:03:27.4638983Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-11T23:03:27.6624024Z ---
2019-09-11T23:03:48.1975713Z finished in 20.734
2019-09-11T23:03:48.2270004Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-11T23:03:48.4342885Z 2019-09-11T23:03:48.4344294Z running 123 tests
2019-09-11T23:04:16.0520151Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....ii..........iiii..........i...ii...i.......ii. 100/123
2019-09-11T23:04:21.3703027Z i.i.i......iii.i.....ii
2019-09-11T23:04:21.3706846Z 2019-09-11T23:04:21.3713250Z finished in 33.145
2019-09-11T23:04:21.3723129Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-11T23:04:21.3723808Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2019-09-11T23:12:48.8944462Z 2019-09-11T23:12:48.8944735Z error: pretty-printed source does not match expected source
2019-09-11T23:12:48.8944808Z expected:
2019-09-11T23:12:48.8945040Z ------------------------------------------
2019-09-11T23:12:48.8945235Z // pp-exact
2019-09-11T23:12:48.8945329Z #![feature(box_syntax)]
2019-09-11T23:12:48.8945371Z #![feature(rustc_attrs)]
2019-09-11T23:12:48.8945424Z #![feature(stmt_expr_attributes)]
2019-09-11T23:12:48.8945471Z 2019-09-11T23:12:48.8945471Z 2019-09-11T23:12:48.8945691Z fn main() { }
2019-09-11T23:12:48.8945720Z 2019-09-11T23:12:48.8945761Z fn _0() {
2019-09-11T23:12:48.8945848Z #[rustc_dummy]
2019-09-11T23:12:48.8945891Z foo();
2019-09-11T23:12:48.8945933Z }
2019-09-11T23:12:48.8945977Z 2019-09-11T23:12:48.8945977Z 2019-09-11T23:12:48.8946021Z fn _1() {
2019-09-11T23:12:48.8946087Z #[rustc_dummy]
2019-09-11T23:12:48.8946147Z unsafe {
2019-09-11T23:12:48.8946464Z // code
2019-09-11T23:12:48.8946510Z }
2019-09-11T23:12:48.8946510Z }
2019-09-11T23:12:48.8946569Z }
2019-09-11T23:12:48.8946607Z 2019-09-11T23:12:48.8946649Z fn _2() {
2019-09-11T23:12:48.8946716Z #[rustc_dummy]
2019-09-11T23:12:48.8946778Z { foo(); }
2019-09-11T23:12:48.8946806Z 2019-09-11T23:12:48.8946846Z {
2019-09-11T23:12:48.8946846Z {
2019-09-11T23:12:48.8946888Z #![rustc_dummy]
2019-09-11T23:12:48.8946983Z foo()
2019-09-11T23:12:48.8947023Z }
2019-09-11T23:12:48.8947062Z }
2019-09-11T23:12:48.8947106Z 2019-09-11T23:12:48.8947106Z 2019-09-11T23:12:48.8947145Z fn _3() {
2019-09-11T23:12:48.8947211Z #[rustc_dummy]
2019-09-11T23:12:48.8947211Z #[rustc_dummy]
2019-09-11T23:12:48.8947274Z match () { _ => { } }
2019-09-11T23:12:48.8947341Z 2019-09-11T23:12:48.8947341Z 2019-09-11T23:12:48.8947380Z fn _4() {
2019-09-11T23:12:48.8947465Z #[rustc_dummy]
2019-09-11T23:12:48.8947507Z match () {
2019-09-11T23:12:48.8947507Z match () {
2019-09-11T23:12:48.8947569Z #![rustc_dummy]
2019-09-11T23:12:48.8947653Z }
2019-09-11T23:12:48.8947890Z 2019-09-11T23:12:48.8947965Z let _ =
2019-09-11T23:12:48.8947965Z let _ =
2019-09-11T23:12:48.8948011Z #[rustc_dummy] match () {
2019-09-11T23:12:48.8948059Z #![rustc_dummy]
2019-09-11T23:12:48.8948170Z };
2019-09-11T23:12:48.8948211Z }
2019-09-11T23:12:48.8948380Z 2019-09-11T23:12:48.8948380Z 2019-09-11T23:12:48.8948438Z fn _5() {
2019-09-11T23:12:48.8948505Z #[rustc_dummy]
2019-09-11T23:12:48.8948548Z let x = 1;
2019-09-11T23:12:48.8948575Z 2019-09-11T23:12:48.8948575Z 2019-09-11T23:12:48.8948636Z let x = #[rustc_dummy] 1;
2019-09-11T23:12:48.8948707Z let y = ();
2019-09-11T23:12:48.8948749Z let z = ();
2019-09-11T23:12:48.8948794Z 2019-09-11T23:12:48.8948794Z 2019-09-11T23:12:48.8948837Z foo3(x, #[rustc_dummy] y, z);
2019-09-11T23:12:48.8948867Z 2019-09-11T23:12:48.8948909Z qux(3 + #[rustc_dummy] 2);
2019-09-11T23:12:48.8948993Z 2019-09-11T23:12:48.8948993Z 2019-09-11T23:12:48.8949033Z fn _6() {
2019-09-11T23:12:48.8949127Z #[rustc_dummy]
2019-09-11T23:12:48.8949127Z #[rustc_dummy]
2019-09-11T23:12:48.8949171Z [#![rustc_dummy] 1, 2, 3];
2019-09-11T23:12:48.8949199Z 2019-09-11T23:12:48.8949246Z let _ = #[rustc_dummy] [#![rustc_dummy] 1, 2, 3];
2019-09-11T23:12:48.8949334Z #[rustc_dummy]
2019-09-11T23:12:48.8949334Z #[rustc_dummy]
2019-09-11T23:12:48.8949379Z [#![rustc_dummy] 1; 4];
2019-09-11T23:12:48.8949415Z 2019-09-11T23:12:48.8949478Z let _ = #[rustc_dummy] [#![rustc_dummy] 1; 4];
2019-09-11T23:12:48.8949549Z 2019-09-11T23:12:48.8949589Z struct Foo {
2019-09-11T23:12:48.8949806Z data: (),
2019-09-11T23:12:48.8949845Z }
2019-09-11T23:12:48.8949845Z }
2019-09-11T23:12:48.8949870Z 2019-09-11T23:12:48.8949910Z struct Bar(());
2019-09-11T23:12:48.8949952Z 2019-09-11T23:12:48.8949990Z fn _7() {
2019-09-11T23:12:48.8950055Z #[rustc_dummy]
2019-09-11T23:12:48.8950055Z #[rustc_dummy]
2019-09-11T23:12:48.8950115Z Foo{#![rustc_dummy] data: (),};
2019-09-11T23:12:48.8950142Z 2019-09-11T23:12:48.8950194Z let _ = #[rustc_dummy] Foo{#![rustc_dummy] data: (),};
2019-09-11T23:12:48.8950277Z 2019-09-11T23:12:48.8950277Z 2019-09-11T23:12:48.8950314Z fn _8() {
2019-09-11T23:12:48.8950379Z #[rustc_dummy]
2019-09-11T23:12:48.8950379Z #[rustc_dummy]
2019-09-11T23:12:48.8950437Z (#![rustc_dummy] );
2019-09-11T23:12:48.8950503Z #[rustc_dummy]
2019-09-11T23:12:48.8950503Z #[rustc_dummy]
2019-09-11T23:12:48.8950551Z (#![rustc_dummy] 0);
2019-09-11T23:12:48.8950633Z #[rustc_dummy]
2019-09-11T23:12:48.8950633Z #[rustc_dummy]
2019-09-11T23:12:48.8950675Z (#![rustc_dummy] 0,);
2019-09-11T23:12:48.8950757Z #[rustc_dummy]
2019-09-11T23:12:48.8950757Z #[rustc_dummy]
2019-09-11T23:12:48.8950798Z (#![rustc_dummy] 0, 1);
2019-09-11T23:12:48.8950861Z 2019-09-11T23:12:48.8950861Z 2019-09-11T23:12:48.8950915Z fn _9() {
2019-09-11T23:12:48.8950959Z macro_rules! stmt_mac { () => { let _ = () ; } }
2019-09-11T23:12:48.8951042Z #[rustc_dummy]
2019-09-11T23:12:48.8951042Z #[rustc_dummy]
2019-09-11T23:12:48.8951084Z stmt_mac!();
2019-09-11T23:12:48.8951154Z #[rustc_dummy]
2019-09-11T23:12:48.8951154Z #[rustc_dummy]
2019-09-11T23:12:48.8951212Z stmt_mac! { };
2019-09-11T23:12:48.8951275Z #[rustc_dummy]
2019-09-11T23:12:48.8951275Z #[rustc_dummy]
2019-09-11T23:12:48.8951315Z stmt_mac![];
2019-09-11T23:12:48.8951395Z #[rustc_dummy]
2019-09-11T23:12:48.8951395Z #[rustc_dummy]
2019-09-11T23:12:48.8951435Z stmt_mac! { }
2019-09-11T23:12:48.8951523Z let _ = ();
2019-09-11T23:12:48.8951562Z }
2019-09-11T23:12:48.8951586Z 2019-09-11T23:12:48.8951586Z 2019-09-11T23:12:48.8951628Z macro_rules! expr_mac { () => { () } }
2019-09-11T23:12:48.8951656Z 2019-09-11T23:12:48.8951712Z fn _10() {
2019-09-11T23:12:48.8951755Z let _ = #[rustc_dummy] expr_mac!();
2019-09-11T23:12:48.8951800Z let _ = #[rustc_dummy] expr_mac![];
2019-09-11T23:12:48.8951860Z let _ = #[rustc_dummy] expr_mac! { };
2019-09-11T23:12:48.8951925Z 2019-09-11T23:12:48.8951925Z 2019-09-11T23:12:48.8951964Z fn _11() {
2019-09-11T23:12:48.8952023Z let _ = #[rustc_dummy] box 0;
2019-09-11T23:12:48.8952141Z let _: [(); 0] = #[rustc_dummy] [#![rustc_dummy] ];
2019-09-11T23:12:48.8952199Z let _ = #[rustc_dummy] [#![rustc_dummy] 0, 0];
2019-09-11T23:12:48.8952266Z let _ = #[rustc_dummy] [#![rustc_dummy] 0; 0];
2019-09-11T23:12:48.8952311Z let _ = #[rustc_dummy] foo();
2019-09-11T23:12:48.8952355Z let _ = #[rustc_dummy] 1i32.clone();
2019-09-11T23:12:48.8952483Z let _ = #[rustc_dummy] (#![rustc_dummy] );
2019-09-11T23:12:48.8952530Z let _ = #[rustc_dummy] (#![rustc_dummy] 0);
2019-09-11T23:12:48.8952576Z let _ = #[rustc_dummy] (#![rustc_dummy] 0,);
2019-09-11T23:12:48.8952640Z let _ = #[rustc_dummy] (#![rustc_dummy] 0, 0);
2019-09-11T23:12:48.8952687Z let _ = #[rustc_dummy] 0 + #[rustc_dummy] 0;
2019-09-11T23:12:48.8952730Z let _ = #[rustc_dummy] !0;
2019-09-11T23:12:48.8953069Z let _ = #[rustc_dummy] -0i32;
2019-09-11T23:12:48.8953138Z let _ = #[rustc_dummy] false;
2019-09-11T23:12:48.8953539Z let _ = #[rustc_dummy] 'c';
2019-09-11T23:12:48.8953597Z let _ = #[rustc_dummy] 0;
2019-09-11T23:12:48.8953661Z let _ = #[rustc_dummy] 0 as usize;
2019-09-11T23:12:48.8953705Z let _ =
2019-09-11T23:12:48.8953750Z #[rustc_dummy] while false {
2019-09-11T23:12:48.8953814Z #![rustc_dummy]
2019-09-11T23:12:48.8953902Z let _ =
2019-09-11T23:12:48.8953902Z let _ =
2019-09-11T23:12:48.8953954Z #[rustc_dummy] while let None = Some(()) {
2019-09-11T23:12:48.8954019Z #![rustc_dummy]
2019-09-11T23:12:48.8954104Z let _ =
2019-09-11T23:12:48.8954104Z let _ =
2019-09-11T23:12:48.8954166Z #[rustc_dummy] for _ in 0..0 {
2019-09-11T23:12:48.8954213Z #![rustc_dummy]
2019-09-11T23:12:48.8954257Z };
2019-09-11T23:12:48.8954320Z // FIXME: pp bug, two spaces after the loop
2019-09-11T23:12:48.8954363Z let _ =
2019-09-11T23:12:48.8954407Z #[rustc_dummy] loop {
2019-09-11T23:12:48.8954477Z #![rustc_dummy]
2019-09-11T23:12:48.8954563Z let _ =
2019-09-11T23:12:48.8954563Z let _ =
2019-09-11T23:12:48.8954608Z #[rustc_dummy] match false {
2019-09-11T23:12:48.8954672Z #![rustc_dummy]
2019-09-11T23:12:48.8954761Z };
2019-09-11T23:12:48.8954761Z };
2019-09-11T23:12:48.8954831Z let _ = #[rustc_dummy] || #[rustc_dummy] ();
2019-09-11T23:12:48.8954881Z let _ = #[rustc_dummy] move || #[rustc_dummy] ();
2019-09-11T23:12:48.8954924Z let _ =
2019-09-11T23:12:48.8954982Z #[rustc_dummy] ||
2019-09-11T23:12:48.8955026Z {
2019-09-11T23:12:48.8955073Z #![rustc_dummy]
2019-09-11T23:12:48.8955120Z #[rustc_dummy]
2019-09-11T23:12:48.8955227Z };
2019-09-11T23:12:48.8955270Z let _ =
2019-09-11T23:12:48.8955270Z let _ =
2019-09-11T23:12:48.8955335Z #[rustc_dummy] move ||
2019-09-11T23:12:48.8955380Z {
2019-09-11T23:12:48.8955426Z #![rustc_dummy]
2019-09-11T23:12:48.8955489Z #[rustc_dummy]
2019-09-11T23:12:48.8955579Z };
2019-09-11T23:12:48.8955628Z let _ =
2019-09-11T23:12:48.8955628Z let _ =
2019-09-11T23:12:48.8955686Z #[rustc_dummy] {
2019-09-11T23:12:48.8955898Z #![rustc_dummy]
2019-09-11T23:12:48.8955998Z let _ =
2019-09-11T23:12:48.8955998Z let _ =
2019-09-11T23:12:48.8956039Z #[rustc_dummy] {
2019-09-11T23:12:48.8956082Z #![rustc_dummy]
2019-09-11T23:12:48.8956142Z let _ = ();
2019-09-11T23:12:48.8956223Z let _ =
2019-09-11T23:12:48.8956223Z let _ =
2019-09-11T23:12:48.8956263Z #[rustc_dummy] {
2019-09-11T23:12:48.8956890Z #![rustc_dummy]
2019-09-11T23:12:48.8956960Z let _ = ();
2019-09-11T23:12:48.8957071Z };
2019-09-11T23:12:48.8957114Z let mut x = 0;
2019-09-11T23:12:48.8957114Z let mut x = 0;
2019-09-11T23:12:48.8957158Z let _ = #[rustc_dummy] x = 15;
2019-09-11T23:12:48.8957222Z let _ = #[rustc_dummy] x += 15;
2019-09-11T23:12:48.8957346Z let s = Foo{data: (),};
2019-09-11T23:12:48.8957391Z let _ = #[rustc_dummy] s.data;
2019-09-11T23:12:48.8957437Z let _ = (#[rustc_dummy] s).data;
2019-09-11T23:12:48.8957499Z let t = Bar(());
2019-09-11T23:12:48.8957544Z let _ = #[rustc_dummy] t.0;
2019-09-11T23:12:48.8957589Z let _ = (#[rustc_dummy] t).0;
2019-09-11T23:12:48.8957651Z let v = vec!(0);
2019-09-11T23:12:48.8957695Z let _ = #[rustc_dummy] v[0];
2019-09-11T23:12:48.8957740Z let _ = (#[rustc_dummy] v)[0];
2019-09-11T23:12:48.8957805Z let _ = #[rustc_dummy] 0..#[rustc_dummy] 0;
2019-09-11T23:12:48.8957860Z let _ = #[rustc_dummy] 0..;
2019-09-11T23:12:48.8957906Z let _ = #[rustc_dummy] (0..0);
2019-09-11T23:12:48.8957969Z let _ = #[rustc_dummy] (0..);
2019-09-11T23:12:48.8958014Z let _ = #[rustc_dummy] (..0);
2019-09-11T23:12:48.8958058Z let _ = #[rustc_dummy] (..);
2019-09-11T23:12:48.8958416Z let _: fn(&u32) -> u32 = #[rustc_dummy] std::clone::Clone::clone;
2019-09-11T23:12:48.8958500Z let _ = #[rustc_dummy] &0;
2019-09-11T23:12:48.8958546Z let _ = #[rustc_dummy] &mut 0;
2019-09-11T23:12:48.8958592Z let _ = #[rustc_dummy] &#[rustc_dummy] 0;
2019-09-11T23:12:48.8958658Z let _ = #[rustc_dummy] &mut #[rustc_dummy] 0;
2019-09-11T23:12:48.8958706Z // FIXME: pp bug, extra space after keyword?
2019-09-11T23:12:48.8958755Z while false { let _ = #[rustc_dummy] continue ; }
2019-09-11T23:12:48.8958823Z while true { let _ = #[rustc_dummy] break ; }
2019-09-11T23:12:48.8958869Z || #[rustc_dummy] return;
2019-09-11T23:12:48.8958923Z let _ = #[rustc_dummy] expr_mac!();
2019-09-11T23:12:48.8958986Z let _ = #[rustc_dummy] expr_mac![];
2019-09-11T23:12:48.8959033Z let _ = #[rustc_dummy] expr_mac! { };
2019-09-11T23:12:48.8959081Z let _ = #[rustc_dummy] Foo{#![rustc_dummy] data: (),};
2019-09-11T23:12:48.8959131Z let _ = #[rustc_dummy] Foo{#![rustc_dummy] ..s};
2019-09-11T23:12:48.8959199Z let _ = #[rustc_dummy] Foo{#![rustc_dummy] data: (), ..s};
2019-09-11T23:12:48.8959256Z let _ = #[rustc_dummy] (#![rustc_dummy] 0);
2019-09-11T23:12:48.8959342Z 2019-09-11T23:12:48.8959342Z 2019-09-11T23:12:48.8959384Z fn _12() {
2019-09-11T23:12:48.8959426Z #[rustc_dummy]
2019-09-11T23:12:48.8959468Z let _ = 0;
2019-09-11T23:12:48.8959602Z #[rustc_dummy]
2019-09-11T23:12:48.8959644Z 0;
2019-09-11T23:12:48.8959670Z 2019-09-11T23:12:48.8959727Z #[rustc_dummy]
2019-09-11T23:12:48.8959727Z #[rustc_dummy]
2019-09-11T23:12:48.8959770Z expr_mac!();
2019-09-11T23:12:48.8959797Z 2019-09-11T23:12:48.8959837Z #[rustc_dummy]
2019-09-11T23:12:48.8959902Z {
2019-09-11T23:12:48.8959944Z #![rustc_dummy]
2019-09-11T23:12:48.8960042Z }
2019-09-11T23:12:48.8960068Z 2019-09-11T23:12:48.8960108Z fn foo() { }
2019-09-11T23:12:48.8960108Z fn foo() { }
2019-09-11T23:12:48.8960153Z fn foo3(_: i32, _: (), _: ()) { }
2019-09-11T23:12:48.8960214Z fn qux(_: i32) { }
2019-09-11T23:12:48.8960499Z ------------------------------------------
2019-09-11T23:12:48.8960547Z actual:
2019-09-11T23:12:48.8960789Z ------------------------------------------
2019-09-11T23:12:48.8960789Z ------------------------------------------
2019-09-11T23:12:48.8963223Z // pp-exact
2019-09-11T23:12:48.8963329Z #![feature(box_syntax)]
2019-09-11T23:12:48.8963373Z #![feature(rustc_attrs)]
2019-09-11T23:12:48.8963418Z #![feature(stmt_expr_attributes)]
2019-09-11T23:12:48.8963447Z 2019-09-11T23:12:48.8963447Z 2019-09-11T23:12:48.8963504Z fn main() { }
2019-09-11T23:12:48.8963532Z 2019-09-11T23:12:48.8963572Z fn _0() {
2019-09-11T23:12:48.8963656Z #[rustc_dummy]
2019-09-11T23:12:48.8963698Z foo();
2019-09-11T23:12:48.8963865Z }
2019-09-11T23:12:48.8963902Z 2019-09-11T23:12:48.8963902Z 2019-09-11T23:12:48.8963960Z fn _1() {
2019-09-11T23:12:48.8964028Z #[rustc_dummy]
2019-09-11T23:12:48.8964070Z unsafe {
2019-09-11T23:12:48.8964125Z // code
2019-09-11T23:12:48.8964166Z }
2019-09-11T23:12:48.8964166Z }
2019-09-11T23:12:48.8964224Z }
2019-09-11T23:12:48.8964250Z 2019-09-11T23:12:48.8964359Z fn _2() {
2019-09-11T23:12:48.8964425Z #[rustc_dummy]
2019-09-11T23:12:48.8964484Z { foo(); }
2019-09-11T23:12:48.8964511Z 2019-09-11T23:12:48.8964550Z {
2019-09-11T23:12:48.8964550Z {
2019-09-11T23:12:48.8964591Z #![rustc_dummy]
2019-09-11T23:12:48.8964678Z foo()
2019-09-11T23:12:48.8964717Z }
2019-09-11T23:12:48.8964773Z }
2019-09-11T23:12:48.8964799Z 2019-09-11T23:12:48.8964799Z 2019-09-11T23:12:48.8964842Z fn _3() {
2019-09-11T23:12:48.8964908Z #[rustc_dummy]
2019-09-11T23:12:48.8964908Z #[rustc_dummy]
2019-09-11T23:12:48.8964970Z match () { _ => { } }
2019-09-11T23:12:48.8965045Z 2019-09-11T23:12:48.8965045Z 2019-09-11T23:12:48.8965084Z fn _4() {
2019-09-11T23:12:48.8965168Z #[rustc_dummy]
2019-09-11T23:12:48.8965210Z match () {
2019-09-11T23:12:48.8965210Z match () {
2019-09-11T23:12:48.8965269Z #![rustc_dummy]
2019-09-11T23:12:48.8965351Z }
2019-09-11T23:12:48.8965377Z 2019-09-11T23:12:48.8965441Z let _ =
2019-09-11T23:12:48.8965441Z let _ =
2019-09-11T23:12:48.8966714Z #[rustc_dummy] match () {
2019-09-11T23:12:48.8966799Z #![rustc_dummy]
2019-09-11T23:12:48.8966910Z };
2019-09-11T23:12:48.8966950Z }
2019-09-11T23:12:48.8966976Z 2019-09-11T23:12:48.8966976Z 2019-09-11T23:12:48.8967034Z fn _5() {
2019-09-11T23:12:48.8967101Z #[rustc_dummy]
2019-09-11T23:12:48.8967142Z let x = 1;
2019-09-11T23:12:48.8967169Z 2019-09-11T23:12:48.8967169Z 2019-09-11T23:12:48.8967228Z let x = #[rustc_dummy] 1;
2019-09-11T23:12:48.8967296Z let y = ();
2019-09-11T23:12:48.8967367Z let z = ();
2019-09-11T23:12:48.8967394Z 2019-09-11T23:12:48.8967394Z 2019-09-11T23:12:48.8967436Z foo3(x, #[rustc_dummy] y, z);
2019-09-11T23:12:48.8967465Z 2019-09-11T23:12:48.8967507Z qux(3 + #[rustc_dummy] 2);
2019-09-11T23:12:48.8967590Z 2019-09-11T23:12:48.8967590Z 2019-09-11T23:12:48.8967630Z fn _6() {
2019-09-11T23:12:48.8967722Z #[rustc_dummy]
2019-09-11T23:12:48.8967722Z #[rustc_dummy]
2019-09-11T23:12:48.8967764Z [#![rustc_dummy] 1, 2, 3];
2019-09-11T23:12:48.8967793Z 2019-09-11T23:12:48.8967838Z let _ = #[rustc_dummy] [#![rustc_dummy] 1, 2, 3];
2019-09-11T23:12:48.8967926Z #[rustc_dummy]
2019-09-11T23:12:48.8967926Z #[rustc_dummy]
2019-09-11T23:12:48.8967969Z [#![rustc_dummy] 1; 4];
2019-09-11T23:12:48.8967998Z 2019-09-11T23:12:48.8968061Z let _ = #[rustc_dummy] [#![rustc_dummy] 1; 4];
2019-09-11T23:12:48.8968130Z 2019-09-11T23:12:48.8968169Z struct Foo {
2019-09-11T23:12:48.8968228Z data: (),
2019-09-11T23:12:48.8968268Z }
2019-09-11T23:12:48.8968268Z }
2019-09-11T23:12:48.8968301Z 2019-09-11T23:12:48.8968341Z struct Bar(());
2019-09-11T23:12:48.8968385Z 2019-09-11T23:12:48.8968425Z fn _7() {
2019-09-11T23:12:48.8968492Z #[rustc_dummy]
2019-09-11T23:12:48.8968492Z #[rustc_dummy]
2019-09-11T23:12:48.8968555Z Foo{#![rustc_dummy] data: (),};
2019-09-11T23:12:48.8968584Z 2019-09-11T23:12:48.8968630Z let _ = #[rustc_dummy] Foo{#![rustc_dummy] data: (),};
2019-09-11T23:12:48.8968724Z 2019-09-11T23:12:48.8968724Z 2019-09-11T23:12:48.8968764Z fn _8() {
2019-09-11T23:12:48.8968816Z 2019-09-11T23:12:48.8968873Z #[rustc_dummy]
2019-09-11T23:12:48.8968873Z #[rustc_dummy]
2019-09-11T23:12:48.8968917Z (#![rustc_dummy] 0);
2019-09-11T23:12:48.8968984Z #[rustc_dummy]
2019-09-11T23:12:48.8968984Z #[rustc_dummy]
2019-09-11T23:12:48.8969045Z (#![rustc_dummy] 0,);
2019-09-11T23:12:48.8969113Z #[rustc_dummy]
2019-09-11T23:12:48.8969113Z #[rustc_dummy]
2019-09-11T23:12:48.8969156Z (#![rustc_dummy] 0, 1);
2019-09-11T23:12:48.8969241Z 2019-09-11T23:12:48.8969241Z 2019-09-11T23:12:48.8969279Z fn _9() {
2019-09-11T23:12:48.8969444Z macro_rules! stmt_mac { () => { let _ = () ; } }
2019-09-11T23:12:48.8969549Z #[rustc_dummy]
2019-09-11T23:12:48.8969549Z #[rustc_dummy]
2019-09-11T23:12:48.8969591Z stmt_mac!();
2019-09-11T23:12:48.8969676Z #[rustc_dummy]
2019-09-11T23:12:48.8969676Z #[rustc_dummy]
2019-09-11T23:12:48.8969718Z stmt_mac! { };
2019-09-11T23:12:48.8969857Z #[rustc_dummy]
2019-09-11T23:12:48.8969857Z #[rustc_dummy]
2019-09-11T23:12:48.8969918Z stmt_mac![];
2019-09-11T23:12:48.8969985Z #[rustc_dummy]
2019-09-11T23:12:48.8969985Z #[rustc_dummy]
2019-09-11T23:12:48.8970044Z stmt_mac! { }
2019-09-11T23:12:48.8970111Z let _ = ();
2019-09-11T23:12:48.8970150Z }
2019-09-11T23:12:48.8970175Z 2019-09-11T23:12:48.8970175Z 2019-09-11T23:12:48.8970237Z macro_rules! expr_mac { () => { () } }
2019-09-11T23:12:48.8970423Z 2019-09-11T23:12:48.8970462Z fn _10() {
2019-09-11T23:12:48.8970522Z let _ = #[rustc_dummy] expr_mac!();
2019-09-11T23:12:48.8970567Z let _ = #[rustc_dummy] expr_mac![];
2019-09-11T23:12:48.8970620Z let _ = #[rustc_dummy] expr_mac! { };
2019-09-11T23:12:48.8970705Z 2019-09-11T23:12:48.8970705Z 2019-09-11T23:12:48.8970743Z fn _11() {
2019-09-11T23:12:48.8970785Z let _ = #[rustc_dummy] box 0;
2019-09-11T23:12:48.8970831Z let _: [(); 0] = #[rustc_dummy] [#![rustc_dummy] ];
2019-09-11T23:12:48.8970897Z let _ = #[rustc_dummy] [#![rustc_dummy] 0, 0];
2019-09-11T23:12:48.8970951Z let _ = #[rustc_dummy] [#![rustc_dummy] 0; 0];
2019-09-11T23:12:48.8970994Z let _ = #[rustc_dummy] foo();
2019-09-11T23:12:48.8971057Z let _ = #[rustc_dummy] 1i32.clone();
2019-09-11T23:12:48.8971103Z let _ = #[rustc_dummy] (#![rustc_dummy] );
2019-09-11T23:12:48.8971148Z let _ = #[rustc_dummy] (#![rustc_dummy] 0);
2019-09-11T23:12:48.8971260Z let _ = #[rustc_dummy] (#![rustc_dummy] 0,);
2019-09-11T23:12:48.8971305Z let _ = #[rustc_dummy] (#![rustc_dummy] 0, 0);
2019-09-11T23:12:48.8971351Z let _ = #[rustc_dummy] 0 + #[rustc_dummy] 0;
2019-09-11T23:12:48.8971413Z let _ = #[rustc_dummy] !0;
2019-09-11T23:12:48.8971773Z let _ = #[rustc_dummy] -0i32;
2019-09-11T23:12:48.8971823Z let _ = #[rustc_dummy] false;
2019-09-11T23:12:48.8972056Z let _ = #[rustc_dummy] 'c';
2019-09-11T23:12:48.8972104Z let _ = #[rustc_dummy] 0;
2019-09-11T23:12:48.8972148Z let _ = #[rustc_dummy] 0 as usize;
2019-09-11T23:12:48.8972189Z let _ =
2019-09-11T23:12:48.8972258Z #[rustc_dummy] while false {
2019-09-11T23:12:48.8972304Z #![rustc_dummy]
2019-09-11T23:12:48.8972406Z let _ =
2019-09-11T23:12:48.8972406Z let _ =
2019-09-11T23:12:48.8972451Z #[rustc_dummy] while let None = Some(()) {
2019-09-11T23:12:48.8972496Z #![rustc_dummy]
2019-09-11T23:12:48.8972596Z let _ =
2019-09-11T23:12:48.8972596Z let _ =
2019-09-11T23:12:48.8972638Z #[rustc_dummy] for _ in 0..0 {
2019-09-11T23:12:48.8972682Z #![rustc_dummy]
2019-09-11T23:12:48.8972922Z };
2019-09-11T23:12:48.8972975Z // FIXME: pp bug, two spaces after the loop
2019-09-11T23:12:48.8973018Z let _ =
2019-09-11T23:12:48.8973080Z #[rustc_dummy] loop {
2019-09-11T23:12:48.8973126Z #![rustc_dummy]
2019-09-11T23:12:48.8973232Z let _ =
2019-09-11T23:12:48.8973232Z let _ =
2019-09-11T23:12:48.8973285Z #[rustc_dummy] match false {
2019-09-11T23:12:48.8973332Z #![rustc_dummy]
2019-09-11T23:12:48.8973601Z };
2019-09-11T23:12:48.8973601Z };
2019-09-11T23:12:48.8973645Z let _ = #[rustc_dummy] || #[rustc_dummy] ();
2019-09-11T23:12:48.8973693Z let _ = #[rustc_dummy] move || #[rustc_dummy] ();
2019-09-11T23:12:48.8973754Z let _ =
2019-09-11T23:12:48.8973795Z #[rustc_dummy] ||
2019-09-11T23:12:48.8973837Z {
2019-09-11T23:12:48.8973899Z #![rustc_dummy]
2019-09-11T23:12:48.8974042Z #[rustc_dummy]
2019-09-11T23:12:48.8974157Z };
2019-09-11T23:12:48.8974197Z let _ =
2019-09-11T23:12:48.8974197Z let _ =
2019-09-11T23:12:48.8974238Z #[rustc_dummy] move ||
2019-09-11T23:12:48.8974281Z {
2019-09-11T23:12:48.8974344Z #![rustc_dummy]
2019-09-11T23:12:48.8974457Z #[rustc_dummy]
2019-09-11T23:12:48.8974561Z };
2019-09-11T23:12:48.8974601Z let _ =
2019-09-11T23:12:48.8974601Z let _ =
2019-09-11T23:12:48.8974642Z #[rustc_dummy] {
2019-09-11T23:12:48.8974702Z #![rustc_dummy]
2019-09-11T23:12:48.8974786Z let _ =
2019-09-11T23:12:48.8974786Z let _ =
2019-09-11T23:12:48.8974826Z #[rustc_dummy] {
2019-09-11T23:12:48.8974888Z #![rustc_dummy]
2019-09-11T23:12:48.8974941Z let _ = ();
2019-09-11T23:12:48.9022671Z let _ =
2019-09-11T23:12:48.9022671Z let _ =
2019-09-11T23:12:48.9022716Z #[rustc_dummy] {
2019-09-11T23:12:48.9022761Z #![rustc_dummy]
2019-09-11T23:12:48.9022824Z let _ = ();
2019-09-11T23:12:48.9022929Z };
2019-09-11T23:12:48.9022969Z let mut x = 0;
2019-09-11T23:12:48.9022969Z let mut x = 0;
2019-09-11T23:12:48.9023030Z let _ = #[rustc_dummy] x = 15;
2019-09-11T23:12:48.9023074Z let _ = #[rustc_dummy] x += 15;
2019-09-11T23:12:48.9023116Z let s = Foo{data: (),};
2019-09-11T23:12:48.9023176Z let _ = #[rustc_dummy] s.data;
2019-09-11T23:12:48.9023220Z let _ = (#[rustc_dummy] s).data;
2019-09-11T23:12:48.9023262Z let t = Bar(());
2019-09-11T23:12:48.9023321Z let _ = #[rustc_dummy] t.0;
2019-09-11T23:12:48.9023364Z let _ = (#[rustc_dummy] t).0;
2019-09-11T23:12:48.9023414Z let v = vec!(0);
2019-09-11T23:12:48.9023455Z let _ = #[rustc_dummy] v[0];
2019-09-11T23:12:48.9023516Z let _ = (#[rustc_dummy] v)[0];
2019-09-11T23:12:48.9023562Z let _ = #[rustc_dummy] 0..#[rustc_dummy] 0;
2019-09-11T23:12:48.9023607Z let _ = #[rustc_dummy] 0..;
2019-09-11T23:12:48.9023668Z let _ = #[rustc_dummy] (0..0);
2019-09-11T23:12:48.9023709Z let _ = #[rustc_dummy] (0..);
2019-09-11T23:12:48.9023758Z let _ = #[rustc_dummy] (..0);
2019-09-11T23:12:48.9023817Z let _ = #[rustc_dummy] (..);
2019-09-11T23:12:48.9024344Z let _: fn(&u32) -> u32 = #[rustc_dummy] std::clone::Clone::clone;
2019-09-11T23:12:48.9024398Z let _ = #[rustc_dummy] &0;
2019-09-11T23:12:48.9024461Z let _ = #[rustc_dummy] &mut 0;

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@nathanwhit

Copy link
Copy Markdown
ContributorAuthor

@varkor No rush, but if you could look this over whenever you have the time that would be much appreciated.

@varkor

Copy link
Copy Markdown
Contributor

@nathanwhit: sorry, I let this slip by me! Thanks for figuring this one out!

@bors r+ rollup

@bors

bors commented Sep 19, 2019

Copy link
Copy Markdown
Collaborator

📌 Commit 96526d4 has been approved by varkor

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 19, 2019
Centril added a commit to Centril/rust that referenced this pull request Sep 20, 2019
…rkor
Fix redundant semicolon lint interaction with proc macro attributes
Fixesrust-lang#63967 and fixesrust-lang#63947, both of which were caused by the lint's changes to the parser interacting poorly with proc macro attributes and causing span information to be lost
r? @varkor
@CentrilCentril mentioned this pull request Sep 20, 2019
bors added a commit that referenced this pull request Sep 20, 2019
Rollup of 8 pull requests
Successful merges:
- #64136 (Document From trait for LhsExpr in parser)
- #64342 (factor out pluralisation remains after #64280)
- #64387 (Fix redundant semicolon lint interaction with proc macro attributes)
- #64498 (When possible point at argument causing item obligation failure)
- #64615 (rustbuild: Turn down compression on exe installers)
- #64617 (rustbuild: Turn down compression on msi installers)
- #64618 (rustbuild: Improve output of `dist` step)
- #64621 (Add Compatibility Notes to RELEASES.md for 1.38.0)
Failed merges:
r? @ghost
@mati865

mati865 commented Sep 20, 2019

Copy link
Copy Markdown
Member

Failed in #64626

Failures like that have been observed multiple times but AFAIK cause remains unknown.

cc @estebank@oli-obk This PR seems be minimal enough to allow (easier) investigation.

tmandry added a commit to tmandry/rust that referenced this pull request Sep 20, 2019
…rkor
Fix redundant semicolon lint interaction with proc macro attributes
Fixesrust-lang#63967 and fixesrust-lang#63947, both of which were caused by the lint's changes to the parser interacting poorly with proc macro attributes and causing span information to be lost
r? @varkor
@tmandrytmandry mentioned this pull request Sep 20, 2019
tmandry added a commit to tmandry/rust that referenced this pull request Sep 20, 2019
…rkor
Fix redundant semicolon lint interaction with proc macro attributes
Fixesrust-lang#63967 and fixesrust-lang#63947, both of which were caused by the lint's changes to the parser interacting poorly with proc macro attributes and causing span information to be lost
r? @varkor
@tmandrytmandry mentioned this pull request Sep 20, 2019
tmandry added a commit to tmandry/rust that referenced this pull request Sep 20, 2019
…rkor
Fix redundant semicolon lint interaction with proc macro attributes
Fixesrust-lang#63967 and fixesrust-lang#63947, both of which were caused by the lint's changes to the parser interacting poorly with proc macro attributes and causing span information to be lost
r? @varkor
@tmandrytmandry mentioned this pull request Sep 20, 2019
tmandry added a commit to tmandry/rust that referenced this pull request Sep 20, 2019
…rkor
Fix redundant semicolon lint interaction with proc macro attributes
Fixesrust-lang#63967 and fixesrust-lang#63947, both of which were caused by the lint's changes to the parser interacting poorly with proc macro attributes and causing span information to be lost
r? @varkor
@tmandrytmandry mentioned this pull request Sep 20, 2019
@tmandry

Copy link
Copy Markdown
Member

Failed in #64646
@bors r-

@borsbors 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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 21, 2019
@JohnCSimon

Copy link
Copy Markdown

Ping from triage
@nabeelomer @varkor@nathanwhit@mati865 this has sat idle for the last eight days - I see all the checks have passed, is this ready to go to review?

Thanks!

@nathanwhit

Copy link
Copy Markdown
ContributorAuthor

Should be ready to go now I believe

@varkor

Copy link
Copy Markdown
Contributor

@nathanwhit: what did you change?

@nathanwhit

Copy link
Copy Markdown
ContributorAuthor

@varkor I just added the force-host compiletest header to the test proc_macro definition. I noticed the rollup failed on the first cross-compiled test –– I assume because proc_macro crates always have to be built be the host system. I also saw that every other test proc_macro definition included that header, which was a guiding factor.

I'm not totally sure though, so any insight is welcome!

@varkor

Copy link
Copy Markdown
Contributor

@nathanwhit: ah, that sounds right to me. Thanks!

@bors r+

@bors

bors commented Sep 28, 2019

Copy link
Copy Markdown
Collaborator

📌 Commit 66c33c0 has been approved by varkor

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Sep 28, 2019
Centril added a commit to Centril/rust that referenced this pull request Sep 28, 2019
…rkor
Fix redundant semicolon lint interaction with proc macro attributes
Fixesrust-lang#63967 and fixesrust-lang#63947, both of which were caused by the lint's changes to the parser interacting poorly with proc macro attributes and causing span information to be lost
r? @varkor
@CentrilCentril mentioned this pull request Sep 28, 2019
bors added a commit that referenced this pull request Sep 28, 2019
Rollup of 10 pull requests
Successful merges:
- #64131 (data_structures: Add deterministic FxHashMap and FxHashSet wrappers)
- #64387 (Fix redundant semicolon lint interaction with proc macro attributes)
- #64678 (added more context for duplicate lang item errors (fixes#60561))
- #64763 (Add E0734 and its long explanation)
- #64793 (Fix format macro expansions spans to be macro-generated)
- #64837 (Improve wording in documentation of MaybeUninit)
- #64852 (Print ParamTy span when accessing a field (#52082))
- #64875 (Upgrade async/await to "used" keywords.)
- #64876 (Fix typo in intrinsics op safety)
- #64880 (Slice docs: fix typo)
Failed merges:
r? @ghost
@bors
bors merged commit 66c33c0 into rust-lang:masterSep 29, 2019
@CentrilCentril added beta-nominated Nominated for backporting to the compiler in the beta channel. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 29, 2019
@pnkfelix

Copy link
Copy Markdown
Contributor

discussed at rustc mtg. accepted for beta backport.

@pnkfelixpnkfelix added the beta-accepted Accepted for backporting to the compiler in the beta channel. label Oct 3, 2019
@Mark-SimulacrumMark-Simulacrum removed the beta-nominated Nominated for backporting to the compiler in the beta channel. label Oct 22, 2019
bors added a commit that referenced this pull request Oct 24, 2019
[beta] backport rollup
This includes a bunch of PRs:
* Fix redundant semicolon lint interaction with proc macro attributes #64387
* Upgrade async/await to "used" keywords. #64875
* syntax: fix dropping of attribute on first param of non-method assocated fn #64894
* async/await: improve not-send errors #64895
* Silence unreachable code lint from await desugaring #64930
* Always mark rust and rust-call abi's as unwind #65020
* Account for macro invocation in `let mut $pat` diagnostic. #65123
* Ensure that associated `async fn`s have unique fresh param names #65142
* Add troubleshooting section to PGO chapter in rustc book. #65402
* Upgrade GCC to 8.3.0, glibc to 1.17.0 and crosstool-ng to 1.24.0 for dist-armv7-linux #65302
* Optimize `try_expand_impl_trait_type` #65293
* use precalculated dominators in explain_borrow #65172
* Fix ICE #64964#64989
bors added a commit that referenced this pull request Oct 26, 2019
[beta] backport rollup
This includes a bunch of PRs:
* Fix redundant semicolon lint interaction with proc macro attributes #64387
* Upgrade async/await to "used" keywords. #64875
* syntax: fix dropping of attribute on first param of non-method assocated fn #64894
* async/await: improve not-send errors #64895
* Silence unreachable code lint from await desugaring #64930
* Always mark rust and rust-call abi's as unwind #65020
* Account for macro invocation in `let mut $pat` diagnostic. #65123
* Ensure that associated `async fn`s have unique fresh param names #65142
* Add troubleshooting section to PGO chapter in rustc book. #65402
* Upgrade GCC to 8.3.0, glibc to 1.17.0 and crosstool-ng to 1.24.0 for dist-armv7-linux #65302
* Optimize `try_expand_impl_trait_type` #65293
* use precalculated dominators in explain_borrow #65172
* Fix ICE #64964#64989
* [beta] Revert "Auto merge of #62948 - matklad:failable-file-loading, r=petro… #65273
* save-analysis: Don't ICE when resolving qualified type paths in struct members #65353
* save-analysis: Nest tables when processing impl block definitions #65511
* Avoid ICE when checking `Destination` of `break` inside a closure #65518
* Avoid ICE when adjusting bad self ty #65755
* workaround msys2 bug #65762
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

beta-acceptedAccepted for backporting to the compiler in the beta channel.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

10 participants

@nathanwhit@rust-highfive@varkor@bors@mati865@tmandry@JohnCSimon@pnkfelix@Centril@Mark-Simulacrum