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

Fix redundant semicolon lint interaction with proc macro attributes #64387

Merged
merged 2 commits into from
Sep 29, 2019

Conversation

nathanwhit
Copy link
Member

@nathanwhit nathanwhit commented Sep 11, 2019

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-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 11, 2019
src/libsyntax/print/pprust.rs Outdated Show resolved Hide resolved
src/libsyntax/print/pprust.rs Outdated Show resolved Hide resolved
@rust-highfive
Copy link
Collaborator

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
Member Author

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

@varkor
Copy link
Member

varkor commented Sep 19, 2019

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

@bors r+ rollup

@bors
Copy link
Contributor

bors commented Sep 19, 2019

📌 Commit 96526d4 has been approved by varkor

@bors bors 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

Fixes rust-lang#63967 and fixes rust-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
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
Copy link
Contributor

mati865 commented Sep 20, 2019

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

Fixes rust-lang#63967 and fixes rust-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
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

Fixes rust-lang#63967 and fixes rust-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
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

Fixes rust-lang#63967 and fixes rust-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
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

Fixes rust-lang#63967 and fixes rust-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
@tmandry
Copy link
Member

tmandry commented Sep 21, 2019

Failed in #64646
@bors r-

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

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
Member Author

Should be ready to go now I believe

@varkor
Copy link
Member

varkor commented Sep 28, 2019

@nathanwhit: what did you change?

@nathanwhit
Copy link
Member Author

@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
Member

varkor commented Sep 28, 2019

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

@bors r+

@bors
Copy link
Contributor

bors commented Sep 28, 2019

📌 Commit 66c33c0 has been approved by varkor

@bors bors 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

Fixes rust-lang#63967 and fixes rust-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
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:master Sep 29, 2019
@Centril Centril 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
Member

pnkfelix commented Oct 3, 2019

discussed at rustc mtg. accepted for beta backport.

@pnkfelix pnkfelix added the beta-accepted Accepted for backporting to the compiler in the beta channel. label Oct 3, 2019
@Mark-Simulacrum Mark-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 free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
beta-accepted Accepted for backporting to the compiler in the beta channel. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
10 participants