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

Lockless LintStore #65193

Merged
merged 18 commits into from Oct 24, 2019

Conversation

@Mark-Simulacrum
Copy link
Member

Mark-Simulacrum commented Oct 7, 2019

This removes mutability from the lint store after registration. Each commit stands alone, for the most part, though they don't make sense out of sequence.

The intent here is to move LintStore to a more parallel-friendly architecture, although also just a cleaner one from an implementation perspective. Specifically, this has the following changes:

  • We no longer implicitly register lints when registering lint passes
    • For the most part this means that registration calls now likely want to call something like:
      lint_store.register_lints(&Pass::get_lints()) as well as register_*_pass.
    • In theory this is a simplification as it's much easier for folks to just register lints and then have passes that implement whichever lint however they want, rather than necessarily tying passes to lints.
  • Lint passes still have a list of associated lints, but a followup PR could plausibly change that
    • This list must be known for a given pass type, not instance, i.e., fn get_lints() is the signature instead of fn get_lints(&self) as before.
  • We do not store pass objects, instead storing constructor functions. This means we always get new passes when running lints (this happens approximately once though for a given compiler session, so no behavior change is expected).
  • Registration API is much simpler: generally all functions are just taking Fn() -> PassObject rather than several different bools.
@Manishearth

This comment has been minimized.

Copy link
Member

Manishearth commented Oct 7, 2019

We should hold off on landing this until clippy's recentmost rustup lands, fwiw

(i.e. only land this if clippy is toolstate green, because if this breaks things in an unfixable way we'd want to be able to deal with things immediately)

@Manishearth

This comment has been minimized.

Copy link
Member

Manishearth commented Oct 7, 2019

Won't have time to do a proper review but what you describe in the PR seems fine from a clippy POV.

Tying passes to lints, weakly, may still be useful because it would be nice to selectively run passes based on what lints are allowed (provided those passes are pure, of course)

@Mark-Simulacrum

This comment has been minimized.

Copy link
Member Author

Mark-Simulacrum commented Oct 7, 2019

I'm happy to try and help get a PR going on the clippy side to fix this, FWIW, though I've never contributed a patch to clippy. It also looks like it'll break RLS based on some quick grepping, but not quite sure why there.

Would that be helpful?

@Mark-Simulacrum

This comment has been minimized.

Copy link
Member Author

Mark-Simulacrum commented Oct 7, 2019

Tying passes to lints, weakly, may still be useful because it would be nice to selectively run passes based on what lints are allowed (provided those passes are pure, of course)

I think that might be an interesting optimization in the future -- these days it's not something we do -- but this PR does not prevent such work from happening if/when it becomes desirable.

@Manishearth

This comment has been minimized.

Copy link
Member

Manishearth commented Oct 7, 2019

If you want to make a PR for clippy that would be great, of course! I'm not too worried about the breakage from this: it sounds like a lot of mechanical fixes, but I won't say no to help 😄

(As clippy toolstate is broken right now you'll have to graft in the rustup PR first)

@Manishearth

This comment has been minimized.

Copy link
Member

Manishearth commented Oct 7, 2019

I think that might be an interesting optimization in the future -- these days it's not something we do -- but this PR does not prevent such work from happening if/when it becomes desirable.

Yep, this was more of a note than a blocker

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Oct 8, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, 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-10-07T22:58:22.6429779Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-10-07T22:58:22.6649776Z ##[command]git config gc.auto 0
2019-10-07T22:58:22.6732200Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-10-07T22:58:22.6790862Z ##[command]git config --get-all http.proxy
2019-10-07T22:58:23.5033115Z ##[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/65193/merge:refs/remotes/pull/65193/merge
---
2019-10-07T23:58:49.9474852Z .................................................................................................... 1600/9124
2019-10-07T23:58:57.7725685Z .................................................................................................... 1700/9124
2019-10-07T23:59:08.3922552Z ...............i...............i.................................................................... 1800/9124
2019-10-07T23:59:15.5913703Z .................................................................................................... 1900/9124
2019-10-07T23:59:31.8702665Z ......iiiii......................................................................................... 2000/9124
2019-10-07T23:59:41.5373457Z .................................................................................................... 2200/9124
2019-10-07T23:59:44.2060301Z .................................................................................................... 2300/9124
2019-10-07T23:59:50.0163646Z .................................................................................................... 2400/9124
2019-10-07T23:59:56.1467382Z .................................................................................................... 2500/9124
---
2019-10-08T00:02:48.0813314Z ...............................................................................................i.... 4700/9124
2019-10-08T00:02:55.3506354Z ...........i........................................................................................ 4800/9124
2019-10-08T00:03:06.2211279Z .................................................................................................... 4900/9124
2019-10-08T00:03:11.9202715Z .................................................................................................... 5000/9124
2019-10-08T00:03:23.6388051Z .........................................................................................ii.ii...... 5100/9124
2019-10-08T00:03:33.6213529Z .................................................................................................... 5300/9124
2019-10-08T00:03:43.2535532Z .................................................................................................... 5400/9124
2019-10-08T00:03:50.2451315Z .......................................................i............................................ 5500/9124
2019-10-08T00:03:57.2357744Z .................................................................................................... 5600/9124
2019-10-08T00:03:57.2357744Z .................................................................................................... 5600/9124
2019-10-08T00:04:05.6183572Z .................................................................................................... 5700/9124
2019-10-08T00:04:16.6288271Z ....................................................ii...i..ii...........i.......................... 5800/9124
2019-10-08T00:04:42.2294777Z .................................................................................................... 6000/9124
2019-10-08T00:04:50.8907781Z .................................................................................................... 6100/9124
2019-10-08T00:04:50.8907781Z .................................................................................................... 6100/9124
2019-10-08T00:04:58.0887084Z ..........................................................i..ii..................................... 6200/9124
2019-10-08T00:05:25.7137564Z .................................................................................................... 6400/9124
2019-10-08T00:05:27.8821132Z ..................i................................................................................. 6500/9124
2019-10-08T00:05:30.1967569Z ...........................................................................................i........ 6600/9124
2019-10-08T00:05:33.0275997Z .................................................................................................... 6700/9124
---
2019-10-08T00:10:08.3973369Z  finished in 5.489
2019-10-08T00:10:08.4154491Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-08T00:10:08.5745244Z 
2019-10-08T00:10:08.5745622Z running 150 tests
2019-10-08T00:10:11.8538412Z i....iii......iii..iiii....i.............................i..i..................i....i.........ii.i.i 100/150
2019-10-08T00:10:13.8280061Z ..iiii..............i.........iii.i.......ii......
2019-10-08T00:10:13.8281524Z 
2019-10-08T00:10:13.8288038Z  finished in 5.413
2019-10-08T00:10:13.8466810Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-08T00:10:14.0027082Z 
---
2019-10-08T00:10:16.0743815Z  finished in 2.227
2019-10-08T00:10:16.0921694Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-08T00:10:16.2522988Z 
2019-10-08T00:10:16.2523901Z running 9 tests
2019-10-08T00:10:16.2553325Z iiiiiiiii
2019-10-08T00:10:16.2563703Z 
2019-10-08T00:10:16.2569985Z  finished in 0.163
2019-10-08T00:10:16.2744764Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-08T00:10:16.4358084Z 
---
2019-10-08T00:10:35.1519746Z  finished in 17.996
2019-10-08T00:10:35.1520629Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-08T00:10:35.1520681Z 
2019-10-08T00:10:35.1520730Z running 123 tests
2019-10-08T00:10:58.7318737Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....ii..........iiii..........i...ii...i.......ii. 100/123
2019-10-08T00:11:03.3595816Z i.i.i......iii.i.....ii
2019-10-08T00:11:03.3596387Z 
2019-10-08T00:11:03.3598334Z  finished in 29.068
2019-10-08T00:11:03.3608530Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-08T00:11:03.3611559Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
2019-10-08T00:11:03.3611559Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
2019-10-08T00:11:03.3826314Z Check compiletest suite=ui-fulldeps mode=ui (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-08T00:11:04.1589623Z 
2019-10-08T00:11:04.1597363Z running 69 tests
2019-10-08T00:12:00.9219880Z ................F......F...F.....F.FFFFFFF.FFFF.....................thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:537:22
2019-10-08T00:12:00.9228886Z .
2019-10-08T00:12:00.9229199Z failures:
2019-10-08T00:12:00.9229365Z 
2019-10-08T00:12:00.9229831Z ---- [ui] ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs stdout ----
2019-10-08T00:12:00.9229831Z ---- [ui] ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs stdout ----
2019-10-08T00:12:00.9230039Z diff of stderr:
2019-10-08T00:12:00.9230205Z 
2019-10-08T00:12:00.9230360Z + error[E0407]: method `get_lints` is not a member of trait `LintPass`
2019-10-08T00:12:00.9230763Z +   --> $DIR/lint_pass_impl_without_macro.rs:20:5
2019-10-08T00:12:00.9231706Z +    |
2019-10-08T00:12:00.9232200Z + LL | /     fn get_lints(&self) -> LintArray {
2019-10-08T00:12:00.9232413Z + LL | |         lint_array!(TEST_LINT)
2019-10-08T00:12:00.9232584Z + LL | |     }
2019-10-08T00:12:00.9232733Z +    | |_____^ not a member of trait `LintPass`
2019-10-08T00:12:00.9233041Z + error[E0407]: method `get_lints` is not a member of trait `LintPass`
2019-10-08T00:12:00.9233437Z +   --> $DIR/lint_pass_impl_without_macro.rs:34:13
2019-10-08T00:12:00.9233625Z +    |
2019-10-08T00:12:00.9233625Z +    |
2019-10-08T00:12:00.9234044Z + LL | /             fn get_lints(&self) -> LintArray {
2019-10-08T00:12:00.9234247Z + LL | |                 lint_array!(TEST_LINT)
2019-10-08T00:12:00.9234412Z + LL | |             }
2019-10-08T00:12:00.9234567Z +    | |_____________^ not a member of trait `LintPass`
2019-10-08T00:12:00.9234710Z + ...
2019-10-08T00:12:00.9234886Z + LL |   custom_lint_pass_macro!();
2019-10-08T00:12:00.9235486Z + 
2019-10-08T00:12:00.9235650Z 1 error: implementing `LintPass` by hand
2019-10-08T00:12:00.9236032Z 2   --> $DIR/lint_pass_impl_without_macro.rs:19:6
2019-10-08T00:12:00.9236223Z 3    |
2019-10-08T00:12:00.9236223Z 3    |
2019-10-08T00:12:00.9236367Z 
2019-10-08T00:12:00.9236508Z 22    |
2019-10-08T00:12:00.9236654Z 23    = help: try using `declare_lint_pass!` or `impl_lint_pass!` instead
2019-10-08T00:12:00.9237558Z - error: aborting due to 2 previous errors
2019-10-08T00:12:00.9237758Z + error: aborting due to 4 previous errors
2019-10-08T00:12:00.9237919Z 26 
2019-10-08T00:12:00.9238519Z + For more information about this error, try `rustc --explain E0407`.
2019-10-08T00:12:00.9238519Z + For more information about this error, try `rustc --explain E0407`.
2019-10-08T00:12:00.9238775Z 27 
2019-10-08T00:12:00.9238924Z 
2019-10-08T00:12:00.9239051Z 
2019-10-08T00:12:00.9239197Z The actual stderr differed from the expected stderr.
2019-10-08T00:12:00.9239759Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro/lint_pass_impl_without_macro.stderr
2019-10-08T00:12:00.9240240Z To update references, rerun the tests and pass the `--bless` flag
2019-10-08T00:12:00.9240717Z To only update this specific test, also pass `--test-args internal-lints/lint_pass_impl_without_macro.rs`
2019-10-08T00:12:00.9241716Z error: 1 errors occurred comparing output.
2019-10-08T00:12:00.9242133Z status: exit code: 1
2019-10-08T00:12:00.9242133Z status: exit code: 1
2019-10-08T00:12:00.9243435Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-Z" "unstable-options" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro/auxiliary" "-A" "unused"
2019-10-08T00:12:00.9244487Z ------------------------------------------
2019-10-08T00:12:00.9247845Z 
2019-10-08T00:12:00.9248601Z ------------------------------------------
2019-10-08T00:12:00.9248825Z stderr:
2019-10-08T00:12:00.9248825Z stderr:
2019-10-08T00:12:00.9249198Z ------------------------------------------
2019-10-08T00:12:00.9249875Z error[E0407]: method `get_lints` is not a member of trait `LintPass`
2019-10-08T00:12:00.9250605Z   --> /checkout/src/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs:20:5
2019-10-08T00:12:00.9250958Z    |
2019-10-08T00:12:00.9251765Z LL | /     fn get_lints(&self) -> LintArray {
2019-10-08T00:12:00.9251980Z LL | |         lint_array!(TEST_LINT)
2019-10-08T00:12:00.9252290Z    | |_____^ not a member of trait `LintPass`
2019-10-08T00:12:00.9252414Z 
2019-10-08T00:12:00.9252834Z error[E0407]: method `get_lints` is not a member of trait `LintPass`
2019-10-08T00:12:00.9253335Z   --> /checkout/src/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs:34:13
2019-10-08T00:12:00.9253335Z   --> /checkout/src/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs:34:13
2019-10-08T00:12:00.9253549Z    |
2019-10-08T00:12:00.9253957Z LL | /             fn get_lints(&self) -> LintArray {
2019-10-08T00:12:00.9257107Z LL | |                 lint_array!(TEST_LINT)
2019-10-08T00:12:00.9257232Z    | |_____________^ not a member of trait `LintPass`
2019-10-08T00:12:00.9257277Z ...
2019-10-08T00:12:00.9257277Z ...
2019-10-08T00:12:00.9257338Z LL |   custom_lint_pass_macro!();
2019-10-08T00:12:00.9257747Z 
2019-10-08T00:12:00.9257791Z error: implementing `LintPass` by hand
2019-10-08T00:12:00.9258083Z   --> /checkout/src/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs:19:6
2019-10-08T00:12:00.9258134Z    |
2019-10-08T00:12:00.9258134Z    |
2019-10-08T00:12:00.9258184Z LL | impl LintPass for Foo { //~ERROR implementing `LintPass` by hand
2019-10-08T00:12:00.9258299Z    |
2019-10-08T00:12:00.9258343Z note: lint level defined here
2019-10-08T00:12:00.9258627Z   --> /checkout/src/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs:4:9
2019-10-08T00:12:00.9258678Z    |
2019-10-08T00:12:00.9258678Z    |
2019-10-08T00:12:00.9258724Z LL | #![deny(rustc::lint_pass_impl_without_macro)]
2019-10-08T00:12:00.9258773Z    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-10-08T00:12:00.9258841Z    = help: try using `declare_lint_pass!` or `impl_lint_pass!` instead
2019-10-08T00:12:00.9259075Z error: implementing `LintPass` by hand
2019-10-08T00:12:00.9259435Z   --> /checkout/src/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs:33:14
2019-10-08T00:12:00.9259488Z    |
2019-10-08T00:12:00.9259488Z    |
2019-10-08T00:12:00.9259537Z LL |         impl LintPass for Custom { //~ERROR implementing `LintPass` by hand
2019-10-08T00:12:00.9259652Z ...
2019-10-08T00:12:00.9259652Z ...
2019-10-08T00:12:00.9259697Z LL | custom_lint_pass_macro!();
2019-10-08T00:12:00.9259999Z    |
2019-10-08T00:12:00.9259999Z    |
2019-10-08T00:12:00.9260047Z    = help: try using `declare_lint_pass!` or `impl_lint_pass!` instead
2019-10-08T00:12:00.9260142Z error: aborting due to 4 previous errors
2019-10-08T00:12:00.9260172Z 
2019-10-08T00:12:00.9260414Z For more information about this error, try `rustc --explain E0407`.
2019-10-08T00:12:00.9260450Z 
2019-10-08T00:12:00.9260450Z 
2019-10-08T00:12:00.9260680Z ------------------------------------------
2019-10-08T00:12:00.9260714Z 
2019-10-08T00:12:00.9260749Z 
2019-10-08T00:12:00.9261228Z ---- [ui] ui-fulldeps/issue-15778-fail.rs stdout ----
2019-10-08T00:12:00.9261289Z 
2019-10-08T00:12:00.9261645Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs" failed to compile: 
2019-10-08T00:12:00.9261703Z status: exit code: 1
2019-10-08T00:12:00.9262485Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-15778-fail/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-15778-fail/auxiliary"
2019-10-08T00:12:00.9262823Z ------------------------------------------
2019-10-08T00:12:00.9262860Z 
2019-10-08T00:12:00.9263086Z ------------------------------------------
2019-10-08T00:12:00.9263134Z stderr:
2019-10-08T00:12:00.9263134Z stderr:
2019-10-08T00:12:00.9263366Z ------------------------------------------
2019-10-08T00:12:00.9263418Z warning: unused import: `LateLintPassObject`
2019-10-08T00:12:00.9263668Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs:10:69
2019-10-08T00:12:00.9263891Z    |
2019-10-08T00:12:00.9263948Z LL | use rustc::lint::{LateContext, LintContext, LintPass, LateLintPass, LateLintPassObject, LintArray};
2019-10-08T00:12:00.9264072Z    |
2019-10-08T00:12:00.9264118Z    = note: `#[warn(unused_imports)]` on by default
2019-10-08T00:12:00.9264149Z 
2019-10-08T00:12:00.9264149Z 
2019-10-08T00:12:00.9264672Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-08T00:12:00.9264996Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs:33:1
2019-10-08T00:12:00.9265114Z LL | #[plugin_registrar]
2019-10-08T00:12:00.9265165Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-08T00:12:00.9265212Z    |
2019-10-08T00:12:00.9265276Z    = note: `#[warn(deprecated)]` on by default
2019-10-08T00:12:00.9265276Z    = note: `#[warn(deprecated)]` on by default
2019-10-08T00:12:00.9265318Z 
2019-10-08T00:12:00.9265363Z error[E0308]: mismatched types
2019-10-08T00:12:00.9265642Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs:35:33
2019-10-08T00:12:00.9265709Z    |
2019-10-08T00:12:00.9265758Z LL |     reg.register_late_lint_pass(box Pass);
2019-10-08T00:12:00.9265816Z    |                                 ^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-08T00:12:00.9265882Z    |
2019-10-08T00:12:00.9266448Z    = note: expected type `fn() -> std::boxed::Box<(dyn for<'a, 'tcx> rustc::lint::LateLintPass<'a, 'tcx> + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-08T00:12:00.9266532Z               found type `std::boxed::Box<Pass>`
2019-10-08T00:12:00.9266638Z error: aborting due to previous error
2019-10-08T00:12:00.9266668Z 
2019-10-08T00:12:00.9266988Z For more information about this error, try `rustc --explain E0308`.
2019-10-08T00:12:00.9267041Z 
2019-10-08T00:12:00.9267041Z 
2019-10-08T00:12:00.9267294Z ------------------------------------------
2019-10-08T00:12:00.9267329Z 
2019-10-08T00:12:00.9267357Z 
2019-10-08T00:12:00.9267624Z ---- [ui] ui-fulldeps/issue-15778-pass.rs stdout ----
2019-10-08T00:12:00.9267661Z 
2019-10-08T00:12:00.9267960Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs" failed to compile: 
2019-10-08T00:12:00.9268018Z status: exit code: 1
2019-10-08T00:12:00.9268811Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-15778-pass/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-15778-pass/auxiliary"
2019-10-08T00:12:00.9269170Z ------------------------------------------
2019-10-08T00:12:00.9269207Z 
2019-10-08T00:12:00.9269443Z ------------------------------------------
2019-10-08T00:12:00.9269508Z stderr:
2019-10-08T00:12:00.9269508Z stderr:
2019-10-08T00:12:00.9269742Z ------------------------------------------
2019-10-08T00:12:00.9269799Z error[E0407]: method `get_lints` is not a member of trait `LintPass`
2019-10-08T00:12:00.9270092Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-08T00:12:00.9270148Z    |
2019-10-08T00:12:00.9270401Z LL | /             fn get_lints(&self) -> LintArray {
2019-10-08T00:12:00.9270471Z LL | |                 $lints
2019-10-08T00:12:00.9270568Z    | |_____________^ not a member of trait `LintPass`
2019-10-08T00:12:00.9270631Z ...
2019-10-08T00:12:00.9270631Z ...
2019-10-08T00:12:00.9270678Z LL | / fake_lint_pass! {
2019-10-08T00:12:00.9270722Z LL | |     PassOkay,
2019-10-08T00:12:00.9270885Z LL | |     lint_array!(CRATE_NOT_OKAY), // Single lint
2019-10-08T00:12:00.9270953Z LL | |     Symbol::intern("rustc_crate_okay")
2019-10-08T00:12:00.9271554Z    | |_- in this macro invocation
2019-10-08T00:12:00.9271609Z 
2019-10-08T00:12:00.9271659Z error[E0407]: method `get_lints` is not a member of trait `LintPass`
2019-10-08T00:12:00.9271920Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-08T00:12:00.9271920Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-08T00:12:00.9271972Z    |
2019-10-08T00:12:00.9272214Z LL | /             fn get_lints(&self) -> LintArray {
2019-10-08T00:12:00.9272267Z LL | |                 $lints
2019-10-08T00:12:00.9272387Z    | |_____________^ not a member of trait `LintPass`
2019-10-08T00:12:00.9272432Z ...
2019-10-08T00:12:00.9272432Z ...
2019-10-08T00:12:00.9272475Z LL | / fake_lint_pass! {
2019-10-08T00:12:00.9272532Z LL | |     PassRedBlue,
2019-10-08T00:12:00.9272583Z LL | |     lint_array!(CRATE_NOT_RED, CRATE_NOT_BLUE), // Multiple lints
2019-10-08T00:12:00.9272646Z LL | |     Symbol::intern("rustc_crate_red"), Symbol::intern("rustc_crate_blue")
2019-10-08T00:12:00.9272929Z    | |_- in this macro invocation
2019-10-08T00:12:00.9272964Z 
2019-10-08T00:12:00.9273012Z error[E0407]: method `get_lints` is not a member of trait `LintPass`
2019-10-08T00:12:00.9273284Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-08T00:12:00.9273284Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-08T00:12:00.9273334Z    |
2019-10-08T00:12:00.9273558Z LL | /             fn get_lints(&self) -> LintArray {
2019-10-08T00:12:00.9273623Z LL | |                 $lints
2019-10-08T00:12:00.9273859Z    | |_____________^ not a member of trait `LintPass`
2019-10-08T00:12:00.9273902Z ...
2019-10-08T00:12:00.9273902Z ...
2019-10-08T00:12:00.9273961Z LL | / fake_lint_pass! {
2019-10-08T00:12:00.9274005Z LL | |     PassGreyGreen,
2019-10-08T00:12:00.9274055Z LL | |     lint_array!(CRATE_NOT_GREY, CRATE_NOT_GREEN, ), // Trailing comma
2019-10-08T00:12:00.9274134Z LL | |     Symbol::intern("rustc_crate_grey"), Symbol::intern("rustc_crate_green")
2019-10-08T00:12:00.9274444Z    | |_- in this macro invocation
2019-10-08T00:12:00.9274494Z 
2019-10-08T00:12:00.9274494Z 
2019-10-08T00:12:00.9274539Z warning: unused import: `LateLintPassObject`
2019-10-08T00:12:00.9274818Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:10:69
2019-10-08T00:12:00.9274871Z    |
2019-10-08T00:12:00.9274941Z LL | use rustc::lint::{LateContext, LintContext, LintPass, LateLintPass, LateLintPassObject, LintArray};
2019-10-08T00:12:00.9275084Z    |
2019-10-08T00:12:00.9275133Z    = note: `#[warn(unused_imports)]` on by default
2019-10-08T00:12:00.9275166Z 
2019-10-08T00:12:00.9275166Z 
2019-10-08T00:12:00.9275579Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-08T00:12:00.9275881Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:68:1
2019-10-08T00:12:00.9275990Z LL | #[plugin_registrar]
2019-10-08T00:12:00.9276058Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-08T00:12:00.9276105Z    |
2019-10-08T00:12:00.9276152Z    = note: `#[warn(deprecated)]` on by default
2019-10-08T00:12:00.9276152Z    = note: `#[warn(deprecated)]` on by default
2019-10-08T00:12:00.9276200Z 
2019-10-08T00:12:00.9276246Z error[E0308]: mismatched types
2019-10-08T00:12:00.9276525Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:70:33
2019-10-08T00:12:00.9276579Z    |
2019-10-08T00:12:00.9276642Z LL |     reg.register_late_lint_pass(box PassOkay);
2019-10-08T00:12:00.9276707Z    |                                 ^^^^^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-08T00:12:00.9276759Z    |
2019-10-08T00:12:00.9277581Z    = note: expected type `fn() -> std::boxed::Box<(dyn for<'a, 'tcx> rustc::lint::LateLintPass<'a, 'tcx> + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-08T00:12:00.9277820Z               found type `std::boxed::Box<PassOkay>`
2019-10-08T00:12:00.9277926Z error[E0308]: mismatched types
2019-10-08T00:12:00.9278257Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:71:33
2019-10-08T00:12:00.9278311Z    |
2019-10-08T00:12:00.9278311Z    |
2019-10-08T00:12:00.9278376Z LL |     reg.register_late_lint_pass(box PassRedBlue);
2019-10-08T00:12:00.9278434Z    |                                 ^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-08T00:12:00.9278484Z    |
2019-10-08T00:12:00.9278883Z    = note: expected type `fn() -> std::boxed::Box<(dyn for<'a, 'tcx> rustc::lint::LateLintPass<'a, 'tcx> + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-08T00:12:00.9278952Z               found type `std::boxed::Box<PassRedBlue>`
2019-10-08T00:12:00.9279045Z error[E0308]: mismatched types
2019-10-08T00:12:00.9279322Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:72:33
2019-10-08T00:12:00.9279384Z    |
2019-10-08T00:12:00.9279384Z    |
2019-10-08T00:12:00.9279432Z LL |     reg.register_late_lint_pass(box PassGreyGreen);
2019-10-08T00:12:00.9279505Z    |                                 ^^^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-08T00:12:00.9279554Z    |
2019-10-08T00:12:00.9279927Z    = note: expected type `fn() -> std::boxed::Box<(dyn for<'a, 'tcx> rustc::lint::LateLintPass<'a, 'tcx> + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-08T00:12:00.9280008Z               found type `std::boxed::Box<PassGreyGreen>`
2019-10-08T00:12:00.9280201Z error: aborting due to 6 previous errors
2019-10-08T00:12:00.9280247Z 
2019-10-08T00:12:00.9280296Z Some errors have detailed explanations: E0308, E0407.
2019-10-08T00:12:00.9280600Z For more information about an error, try `rustc --explain E0308`.
2019-10-08T00:12:00.9280600Z For more information about an error, try `rustc --explain E0308`.
2019-10-08T00:12:00.9280636Z 
2019-10-08T00:12:00.9280885Z ------------------------------------------
2019-10-08T00:12:00.9280929Z 
2019-10-08T00:12:00.9280957Z 
2019-10-08T00:12:00.9281508Z ---- [ui] ui-fulldeps/issue-40001.rs stdout ----
2019-10-08T00:12:00.9281566Z 
2019-10-08T00:12:00.9281905Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs" failed to compile: 
2019-10-08T00:12:00.9281965Z status: exit code: 1
2019-10-08T00:12:00.9282736Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-40001/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-40001/auxiliary"
2019-10-08T00:12:00.9283077Z ------------------------------------------
2019-10-08T00:12:00.9283112Z 
2019-10-08T00:12:00.9283333Z ------------------------------------------
2019-10-08T00:12:00.9283382Z stderr:
2019-10-08T00:12:00.9283382Z stderr:
2019-10-08T00:12:00.9283609Z ------------------------------------------
2019-10-08T00:12:00.9283661Z warning: unused import: `syntax::ext::base::*`
2019-10-08T00:12:00.9283912Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:11:5
2019-10-08T00:12:00.9284026Z LL | use syntax::ext::base::*;
2019-10-08T00:12:00.9284071Z    |     ^^^^^^^^^^^^^^^^^^^^
2019-10-08T00:12:00.9284137Z    |
2019-10-08T00:12:00.9284185Z    = note: `#[warn(unused_imports)]` on by default
2019-10-08T00:12:00.9284185Z    = note: `#[warn(unused_imports)]` on by default
2019-10-08T00:12:00.9284216Z 
2019-10-08T00:12:00.9284261Z warning: unused import: `rustc::hir::map as hir_map`
2019-10-08T00:12:00.9284538Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:17:5
2019-10-08T00:12:00.9284590Z    |
2019-10-08T00:12:00.9284783Z LL | use rustc::hir::map as hir_map;
2019-10-08T00:12:00.9284878Z 
2019-10-08T00:12:00.9284920Z warning: unused import: `rustc::ty`
2019-10-08T00:12:00.9284920Z warning: unused import: `rustc::ty`
2019-10-08T00:12:00.9285220Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:20:5
2019-10-08T00:12:00.9285327Z LL | use rustc::ty;
2019-10-08T00:12:00.9285371Z    |     ^^^^^^^^^
2019-10-08T00:12:00.9285413Z 
2019-10-08T00:12:00.9285456Z warning: unused import: `ast`
2019-10-08T00:12:00.9285456Z warning: unused import: `ast`
2019-10-08T00:12:00.9285710Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:21:14
2019-10-08T00:12:00.9285759Z    |
2019-10-08T00:12:00.9285826Z LL | use syntax::{ast, source_map};
2019-10-08T00:12:00.9285900Z 
2019-10-08T00:12:00.9285900Z 
2019-10-08T00:12:00.9286282Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-08T00:12:00.9286563Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:23:1
2019-10-08T00:12:00.9286685Z LL | #[plugin_registrar]
2019-10-08T00:12:00.9286732Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-08T00:12:00.9286776Z    |
2019-10-08T00:12:00.9286837Z    = note: `#[warn(deprecated)]` on by default
2019-10-08T00:12:00.9286837Z    = note: `#[warn(deprecated)]` on by default
2019-10-08T00:12:00.9286868Z 
2019-10-08T00:12:00.9286911Z error[E0308]: mismatched types
2019-10-08T00:12:00.9287168Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:25:33
2019-10-08T00:12:00.9287233Z    |
2019-10-08T00:12:00.9287281Z LL |     reg.register_late_lint_pass(box MissingWhitelistedAttrPass);
2019-10-08T00:12:00.9287446Z    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-08T00:12:00.9287521Z    |
2019-10-08T00:12:00.9287916Z    = note: expected type `fn() -> std::boxed::Box<(dyn for<'a, 'tcx> rustc::lint::LateLintPass<'a, 'tcx> + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-08T00:12:00.9288009Z               found type `std::boxed::Box<MissingWhitelistedAttrPass>`
2019-10-08T00:12:00.9288091Z error: aborting due to previous error
2019-10-08T00:12:00.9288121Z 
2019-10-08T00:12:00.9288385Z For more information about this error, try `rustc --explain E0308`.
2019-10-08T00:12:00.9288422Z 
2019-10-08T00:12:00.9288422Z 
2019-10-08T00:12:00.9288637Z ------------------------------------------
2019-10-08T00:12:00.9288671Z 
2019-10-08T00:12:00.9288697Z 
2019-10-08T00:12:00.9288948Z ---- [ui] ui-fulldeps/lint-group-plugin-deny-cmdline.rs stdout ----
2019-10-08T00:12:00.9288982Z 
2019-10-08T00:12:00.9289267Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs" failed to compile: 
2019-10-08T00:12:00.9289338Z status: exit code: 1
2019-10-08T00:12:00.9290112Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-group-plugin-deny-cmdline/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-group-plugin-deny-cmdline/auxiliary"
2019-10-08T00:12:00.9290453Z ------------------------------------------
2019-10-08T00:12:00.9290489Z 
2019-10-08T00:12:00.9290728Z ------------------------------------------
2019-10-08T00:12:00.9290777Z stderr:
2019-10-08T00:12:00.9290777Z stderr:
2019-10-08T00:12:00.9291230Z ------------------------------------------
2019-10-08T00:12:00.9291295Z warning: unused import: `LateLintPassObject`
2019-10-08T00:12:00.9291634Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:12:69
2019-10-08T00:12:00.9291690Z    |
2019-10-08T00:12:00.9291902Z LL | use rustc::lint::{LateContext, LintContext, LintPass, LateLintPass, LateLintPassObject, LintArray};
2019-10-08T00:12:00.9292026Z    |
2019-10-08T00:12:00.9292086Z    = note: `#[warn(unused_imports)]` on by default
2019-10-08T00:12:00.9292119Z 
2019-10-08T00:12:00.9292119Z 
2019-10-08T00:12:00.9292534Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-08T00:12:00.9292842Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:31:1
2019-10-08T00:12:00.9292945Z LL | #[plugin_registrar]
2019-10-08T00:12:00.9293011Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-08T00:12:00.9293055Z    |
2019-10-08T00:12:00.9293099Z    = note: `#[warn(deprecated)]` on by default
2019-10-08T00:12:00.9293099Z    = note: `#[warn(deprecated)]` on by default
2019-10-08T00:12:00.9293148Z 
2019-10-08T00:12:00.9293190Z error[E0308]: mismatched types
2019-10-08T00:12:00.9293451Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:33:33
2019-10-08T00:12:00.9293511Z    |
2019-10-08T00:12:00.9293573Z LL |     reg.register_late_lint_pass(box Pass);
2019-10-08T00:12:00.9293629Z    |                                 ^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-08T00:12:00.9293676Z    |
2019-10-08T00:12:00.9294051Z    = note: expected type `fn() -> std::boxed::Box<(dyn for<'a, 'tcx> rustc::lint::LateLintPass<'a, 'tcx> + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-08T00:12:00.9294117Z               found type `std::boxed::Box<Pass>`
2019-10-08T00:12:00.9294329Z error: aborting due to previous error
2019-10-08T00:12:00.9294358Z 
2019-10-08T00:12:00.9294647Z For more information about this error, try `rustc --explain E0308`.
2019-10-08T00:12:00.9294683Z 
2019-10-08T00:12:00.9294683Z 
2019-10-08T00:12:00.9294918Z ------------------------------------------
2019-10-08T00:12:00.9294952Z 
2019-10-08T00:12:00.9294988Z 
2019-10-08T00:12:00.9295217Z ---- [ui] ui-fulldeps/lint-group-plugin.rs stdout ----
2019-10-08T00:12:00.9295268Z 
2019-10-08T00:12:00.9295549Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs" failed to compile: 
2019-10-08T00:12:00.9295605Z status: exit code: 1
2019-10-08T00:12:00.9296373Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-group-plugin/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-group-plugin/auxiliary"
2019-10-08T00:12:00.9296706Z ------------------------------------------
2019-10-08T00:12:00.9296750Z 
2019-10-08T00:12:00.9296971Z ------------------------------------------
2019-10-08T00:12:00.9297019Z stderr:
2019-10-08T00:12:00.9297019Z stderr:
2019-10-08T00:12:00.9297250Z ------------------------------------------
2019-10-08T00:12:00.9297302Z warning: unused import: `LateLintPassObject`
2019-10-08T00:12:00.9297555Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:12:69
2019-10-08T00:12:00.9297623Z    |
2019-10-08T00:12:00.9297678Z LL | use rustc::lint::{LateContext, LintContext, LintPass, LateLintPass, LateLintPassObject, LintArray};
2019-10-08T00:12:00.9297818Z    |
2019-10-08T00:12:00.9297863Z    = note: `#[warn(unused_imports)]` on by default
2019-10-08T00:12:00.9297895Z 
2019-10-08T00:12:00.9297895Z 
2019-10-08T00:12:00.9298263Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-08T00:12:00.9302041Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:31:1
2019-10-08T00:12:00.9302165Z LL | #[plugin_registrar]
2019-10-08T00:12:00.9302213Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-08T00:12:00.9302258Z    |
2019-10-08T00:12:00.9302320Z    = note: `#[warn(deprecated)]` on by default
2019-10-08T00:12:00.9302320Z    = note: `#[warn(deprecated)]` on by default
2019-10-08T00:12:00.9302351Z 
2019-10-08T00:12:00.9302394Z error[E0308]: mismatched types
2019-10-08T00:12:00.9302658Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:33:33
2019-10-08T00:12:00.9302726Z    |
2019-10-08T00:12:00.9302786Z LL |     reg.register_late_lint_pass(box Pass);
2019-10-08T00:12:00.9302841Z    |                                 ^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-08T00:12:00.9302906Z    |
2019-10-08T00:12:00.9303264Z    = note: expected type `fn() -> std::boxed::Box<(dyn for<'a, 'tcx> rustc::lint::LateLintPass<'a, 'tcx> + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-08T00:12:00.9303356Z               found type `std::boxed::Box<Pass>`
2019-10-08T00:12:00.9303438Z error: aborting due to previous error
2019-10-08T00:12:00.9303469Z 
2019-10-08T00:12:00.9306483Z For more information about this error, try `rustc --explain E0308`.
2019-10-08T00:12:00.9306546Z 
2019-10-08T00:12:00.9306546Z 
2019-10-08T00:12:00.9306884Z ------------------------------------------
2019-10-08T00:12:00.9306919Z 
2019-10-08T00:12:00.9306945Z 
2019-10-08T00:12:00.9307203Z ---- [ui] ui-fulldeps/lint-plugin-cmdline-allow.rs stdout ----
2019-10-08T00:12:00.9307238Z 
2019-10-08T00:12:00.9307696Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" failed to compile: 
2019-10-08T00:12:00.9307790Z status: exit code: 1
2019-10-08T00:12:00.9308610Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-cmdline-allow/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-cmdline-allow/auxiliary"
2019-10-08T00:12:00.9308962Z ------------------------------------------
2019-10-08T00:12:00.9308998Z 
2019-10-08T00:12:00.9309236Z ------------------------------------------
2019-10-08T00:12:00.9309292Z stderr:
2019-10-08T00:12:00.9309292Z stderr:
2019-10-08T00:12:00.9309509Z ------------------------------------------
2019-10-08T00:12:00.9309902Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-08T00:12:00.9310183Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:29:1
2019-10-08T00:12:00.9310306Z LL | #[plugin_registrar]
2019-10-08T00:12:00.9310354Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-08T00:12:00.9310398Z    |
2019-10-08T00:12:00.9310460Z    = note: `#[warn(deprecated)]` on by default
2019-10-08T00:12:00.9310460Z    = note: `#[warn(deprecated)]` on by default
2019-10-08T00:12:00.9310491Z 
2019-10-08T00:12:00.9310533Z error[E0308]: mismatched types
2019-10-08T00:12:00.9310791Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:31:34
2019-10-08T00:12:00.9310856Z    |
2019-10-08T00:12:00.9310905Z LL |     reg.register_early_lint_pass(box Pass as EarlyLintPassObject);
2019-10-08T00:12:00.9310972Z    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-08T00:12:00.9311300Z    |
2019-10-08T00:12:00.9311707Z    = note: expected type `fn() -> std::boxed::Box<(dyn rustc::lint::EarlyLintPass + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-08T00:12:00.9312046Z               found type `std::boxed::Box<(dyn rustc::lint::EarlyLintPass + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-08T00:12:00.9312321Z error: aborting due to previous error
2019-10-08T00:12:00.9312351Z 
2019-10-08T00:12:00.9312669Z For more information about this error, try `rustc --explain E0308`.
2019-10-08T00:12:00.9312706Z 
2019-10-08T00:12:00.9312706Z 
2019-10-08T00:12:00.9312923Z ------------------------------------------
2019-10-08T00:12:00.9312956Z 
2019-10-08T00:12:00.9312982Z 
2019-10-08T00:12:00.9313232Z ---- [ui] ui-fulldeps/lint-plugin-cmdline-load.rs stdout ----
2019-10-08T00:12:00.9313268Z 
2019-10-08T00:12:00.9313550Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" failed to compile: 
2019-10-08T00:12:00.9313622Z status: exit code: 1
2019-10-08T00:12:00.9314380Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-cmdline-load/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-cmdline-load/auxiliary"
2019-10-08T00:12:00.9314717Z ------------------------------------------
2019-10-08T00:12:00.9314751Z 
2019-10-08T00:12:00.9314983Z ------------------------------------------
2019-10-08T00:12:00.9315129Z stderr:
2019-10-08T00:12:00.9315129Z stderr:
2019-10-08T00:12:00.9315396Z ------------------------------------------
2019-10-08T00:12:00.9315782Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-08T00:12:00.9316085Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:29:1
2019-10-08T00:12:00.9316216Z LL | #[plugin_registrar]
2019-10-08T00:12:00.9316267Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-08T00:12:00.9316315Z    |
2019-10-08T00:12:00.9316379Z    = note: `#[warn(deprecated)]` on by default
2019-10-08T00:12:00.9316379Z    = note: `#[warn(deprecated)]` on by default
2019-10-08T00:12:00.9316413Z 
2019-10-08T00:12:00.9316459Z error[E0308]: mismatched types
2019-10-08T00:12:00.9316734Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:31:34
2019-10-08T00:12:00.9317046Z    |
2019-10-08T00:12:00.9317118Z LL |     reg.register_early_lint_pass(box Pass as EarlyLintPassObject);
2019-10-08T00:12:00.9317192Z    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-08T00:12:00.9317264Z    |
2019-10-08T00:12:00.9317678Z    = note: expected type `fn() -> std::boxed::Box<(dyn rustc::lint::EarlyLintPass + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-08T00:12:00.9318035Z               found type `std::boxed::Box<(dyn rustc::lint::EarlyLintPass + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-08T00:12:00.9318156Z error: aborting due to previous error
2019-10-08T00:12:00.9318187Z 
2019-10-08T00:12:00.9318471Z For more information about this error, try `rustc --explain E0308`.
2019-10-08T00:12:00.9318509Z 
2019-10-08T00:12:00.9318509Z 
2019-10-08T00:12:00.9318744Z ------------------------------------------
2019-10-08T00:12:00.9318779Z 
2019-10-08T00:12:00.9318807Z 
2019-10-08T00:12:00.9319075Z ---- [ui] ui-fulldeps/lint-plugin-deny-attr.rs stdout ----
2019-10-08T00:12:00.9319112Z 
2019-10-08T00:12:00.9319412Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" failed to compile: 
2019-10-08T00:12:00.9319488Z status: exit code: 1
2019-10-08T00:12:00.9320256Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-deny-attr/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-deny-attr/auxiliary"
2019-10-08T00:12:00.9320806Z ------------------------------------------
2019-10-08T00:12:00.9320844Z 
2019-10-08T00:12:00.9321422Z ------------------------------------------
2019-10-08T00:12:00.9321495Z stderr:
2019-10-08T00:12:00.9321495Z stderr:
2019-10-08T00:12:00.9321726Z ------------------------------------------
2019-10-08T00:12:00.9322121Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-08T00:12:00.9322401Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:29:1
2019-10-08T00:12:00.9322528Z LL | #[plugin_registrar]
---
2019-10-08T00:12:00.9377852Z test result: FAILED. 54 passed; 15 failed; 0 ignored; 0 measured; 0 filtered out
2019-10-08T00:12:00.9377890Z 
2019-10-08T00:12:00.9377916Z 
2019-10-08T00:12:00.9377942Z 
2019-10-08T00:12:00.9379511Z 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-fulldeps" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2019-10-08T00:12:00.9379765Z 
2019-10-08T00:12:00.9379802Z 
2019-10-08T00:12:01.6685302Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-10-08T00:12:01.6685668Z Build completed unsuccessfully in 1:06:26
2019-10-08T00:12:01.6685668Z Build completed unsuccessfully in 1:06:26
2019-10-08T00:12:01.6685784Z == clock drift check ==
2019-10-08T00:12:01.6685861Z   local time: Tue Oct  8 00:12:00 UTC 2019
2019-10-08T00:12:01.6685949Z   network time: Tue, 08 Oct 2019 00:12:01 GMT
2019-10-08T00:12:01.6686018Z == end clock drift check ==
2019-10-08T00:12:02.1680253Z ##[error]Bash exited with code '1'.
2019-10-08T00:12:02.1724727Z ##[section]Starting: Checkout
2019-10-08T00:12:02.1726624Z ==============================================================================
2019-10-08T00:12:02.1726698Z Task         : Get sources
2019-10-08T00:12:02.1726746Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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)

@Zoxc

This comment has been minimized.

Copy link
Contributor

Zoxc commented Oct 8, 2019

I'm not sure about Duplicate lint specifications are always bug!, but the rest of the commits looks good to me.

@mati865

This comment has been minimized.

Copy link
Contributor

mati865 commented Oct 8, 2019

We should hold off on landing this until clippy's recentmost rustup lands, fwiw

Already landed on Clippy side and should soon land in Rust: #65206

@Mark-Simulacrum Mark-Simulacrum force-pushed the Mark-Simulacrum:lockless-lintstore branch from 221a207 to 0ec0d82 Oct 9, 2019
@Mark-Simulacrum

This comment has been minimized.

Copy link
Member Author

Mark-Simulacrum commented Oct 9, 2019

Pushed up new commits moving future compatibility information to lints directly as another step in moving us off of LintStore on Session -- will try to spend some time tomorrow finishing the decoupling entirely.

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Oct 9, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, 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-10-09T01:53:57.9398836Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-10-09T01:53:57.9585121Z ##[command]git config gc.auto 0
2019-10-09T01:53:57.9679134Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-10-09T01:53:57.9752368Z ##[command]git config --get-all http.proxy
2019-10-09T01:53:57.9935070Z ##[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/65193/merge:refs/remotes/pull/65193/merge
---
2019-10-09T02:59:03.0809994Z .................................................................................................... 1600/9132
2019-10-09T02:59:11.5232479Z .................................................................................................... 1700/9132
2019-10-09T02:59:22.9855070Z ................i...............i................................................................... 1800/9132
2019-10-09T02:59:30.7265700Z .................................................................................................... 1900/9132
2019-10-09T02:59:48.3765853Z .......iiiii........................................................................................ 2000/9132
2019-10-09T02:59:58.8652489Z .................................................................................................... 2200/9132
2019-10-09T03:00:01.6829682Z .................................................................................................... 2300/9132
2019-10-09T03:00:07.9680363Z .................................................................................................... 2400/9132
2019-10-09T03:00:14.5690198Z .................................................................................................... 2500/9132
---
2019-10-09T03:03:18.5525241Z ...................................................................................................i 4700/9132
2019-10-09T03:03:26.2919897Z ...............i.................................................................................... 4800/9132
2019-10-09T03:03:38.4225158Z .................................................................................................... 4900/9132
2019-10-09T03:03:44.3559678Z .................................................................................................... 5000/9132
2019-10-09T03:03:56.5808079Z .............................................................................................ii.ii.. 5100/9132
2019-10-09T03:04:07.5975106Z .................................................................................................... 5300/9132
2019-10-09T03:04:18.0208282Z .................................................................................................... 5400/9132
2019-10-09T03:04:25.4143271Z ...........................................................i........................................ 5500/9132
2019-10-09T03:04:32.9688785Z .................................................................................................... 5600/9132
2019-10-09T03:04:32.9688785Z .................................................................................................... 5600/9132
2019-10-09T03:04:41.4497194Z .................................................................................................... 5700/9132
2019-10-09T03:04:53.4862702Z ........................................................ii...i..ii...........i...................... 5800/9132
2019-10-09T03:05:21.1113781Z .................................................................................................... 6000/9132
2019-10-09T03:05:28.3636888Z .................................................................................................... 6100/9132
2019-10-09T03:05:28.3636888Z .................................................................................................... 6100/9132
2019-10-09T03:05:35.6061870Z ..............................................................i..ii................................. 6200/9132
2019-10-09T03:06:05.9495197Z .................................................................................................... 6400/9132
2019-10-09T03:06:08.2310522Z ......................i............................................................................. 6500/9132
2019-10-09T03:06:10.5993176Z ...............................................................................................i.... 6600/9132
2019-10-09T03:06:13.5310225Z .................................................................................................... 6700/9132
---
2019-10-09T03:11:08.7382607Z  finished in 5.702
2019-10-09T03:11:08.7612831Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-09T03:11:08.9450671Z 
2019-10-09T03:11:08.9450987Z running 150 tests
2019-10-09T03:11:12.4645088Z i....iii.......iii.iiii....i.............................i..i..................i....i.........ii.i.i 100/150
2019-10-09T03:11:14.5688718Z ..iiii..............i.........iii.i.......ii......
2019-10-09T03:11:14.5690034Z 
2019-10-09T03:11:14.5694053Z  finished in 5.808
2019-10-09T03:11:14.5883082Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-09T03:11:15.2855294Z 
---
2019-10-09T03:11:16.9442492Z  finished in 2.355
2019-10-09T03:11:16.9637260Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-09T03:11:17.1304845Z 
2019-10-09T03:11:17.1306135Z running 9 tests
2019-10-09T03:11:17.1307427Z iiiiiiiii
2019-10-09T03:11:17.1308132Z 
2019-10-09T03:11:17.1308266Z  finished in 0.166
2019-10-09T03:11:17.1502251Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-09T03:11:18.2815498Z 
---
2019-10-09T03:11:36.4367172Z  finished in 19.286
2019-10-09T03:11:36.4599752Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-09T03:11:36.6572568Z 
2019-10-09T03:11:36.6574161Z running 123 tests
2019-10-09T03:12:02.1637114Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....ii..........iiii..........i...ii...i.......ii. 100/123
2019-10-09T03:12:07.1181031Z i.i.i......iii.i.....ii
2019-10-09T03:12:07.1182603Z 
2019-10-09T03:12:07.1186700Z  finished in 30.658
2019-10-09T03:12:07.1197916Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-09T03:12:07.1198573Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
2019-10-09T03:12:07.1198573Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
2019-10-09T03:12:07.1425714Z Check compiletest suite=ui-fulldeps mode=ui (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-09T03:12:07.3118452Z 
2019-10-09T03:12:07.3118638Z running 69 tests
2019-10-09T03:13:09.9984520Z ................F.......F..F.....F.FFFFFFF.FFFF......................
2019-10-09T03:13:09.9984848Z 
2019-10-09T03:13:10.0016091Z ---- [ui] ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs stdout ----
2019-10-09T03:13:10.0016223Z diff of stderr:
2019-10-09T03:13:10.0016261Z 
2019-10-09T03:13:10.0016261Z 
2019-10-09T03:13:10.0016311Z 23    = help: try using `declare_lint_pass!` or `impl_lint_pass!` instead
2019-10-09T03:13:10.0016695Z 25 error: aborting due to 2 previous errors
2019-10-09T03:13:10.0016758Z + 
2019-10-09T03:13:10.0016815Z 26 
2019-10-09T03:13:10.0016843Z 
2019-10-09T03:13:10.0016843Z 
2019-10-09T03:13:10.0016869Z 
2019-10-09T03:13:10.0016917Z The actual stderr differed from the expected stderr.
2019-10-09T03:13:10.0017372Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro/lint_pass_impl_without_macro.stderr
2019-10-09T03:13:10.0017665Z To update references, rerun the tests and pass the `--bless` flag
2019-10-09T03:13:10.0018351Z To only update this specific test, also pass `--test-args internal-lints/lint_pass_impl_without_macro.rs`
2019-10-09T03:13:10.0018466Z error: 1 errors occurred comparing output.
2019-10-09T03:13:10.0018512Z status: exit code: 1
2019-10-09T03:13:10.0018512Z status: exit code: 1
2019-10-09T03:13:10.0019423Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-Z" "unstable-options" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro/auxiliary" "-A" "unused"
2019-10-09T03:13:10.0019973Z ------------------------------------------
2019-10-09T03:13:10.0020008Z 
2019-10-09T03:13:10.0020233Z ------------------------------------------
2019-10-09T03:13:10.0020301Z stderr:
2019-10-09T03:13:10.0020301Z stderr:
2019-10-09T03:13:10.0020528Z ------------------------------------------
2019-10-09T03:13:10.0020577Z error: implementing `LintPass` by hand
2019-10-09T03:13:10.0020861Z   --> /checkout/src/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs:19:6
2019-10-09T03:13:10.0020936Z    |
2019-10-09T03:13:10.0020988Z LL | impl LintPass for Foo { //~ERROR implementing `LintPass` by hand
2019-10-09T03:13:10.0021101Z    |
2019-10-09T03:13:10.0021146Z note: lint level defined here
2019-10-09T03:13:10.0021428Z   --> /checkout/src/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs:4:9
2019-10-09T03:13:10.0021507Z    |
2019-10-09T03:13:10.0021507Z    |
2019-10-09T03:13:10.0021552Z LL | #![deny(rustc::lint_pass_impl_without_macro)]
2019-10-09T03:13:10.0021601Z    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-10-09T03:13:10.0021672Z    = help: try using `declare_lint_pass!` or `impl_lint_pass!` instead
2019-10-09T03:13:10.0021748Z error: implementing `LintPass` by hand
2019-10-09T03:13:10.0022030Z   --> /checkout/src/test/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs:29:14
2019-10-09T03:13:10.0022099Z    |
2019-10-09T03:13:10.0022099Z    |
2019-10-09T03:13:10.0022155Z LL |         impl LintPass for Custom { //~ERROR implementing `LintPass` by hand
2019-10-09T03:13:10.0022267Z ...
2019-10-09T03:13:10.0022267Z ...
2019-10-09T03:13:10.0022310Z LL | custom_lint_pass_macro!();
2019-10-09T03:13:10.0022620Z    |
2019-10-09T03:13:10.0022620Z    |
2019-10-09T03:13:10.0022669Z    = help: try using `declare_lint_pass!` or `impl_lint_pass!` instead
2019-10-09T03:13:10.0022752Z error: aborting due to 2 previous errors
2019-10-09T03:13:10.0022800Z 
2019-10-09T03:13:10.0022826Z 
2019-10-09T03:13:10.0023051Z ------------------------------------------
2019-10-09T03:13:10.0023051Z ------------------------------------------
2019-10-09T03:13:10.0023082Z 
2019-10-09T03:13:10.0023108Z 
2019-10-09T03:13:10.0023366Z ---- [ui] ui-fulldeps/issue-15778-fail.rs stdout ----
2019-10-09T03:13:10.0023399Z 
2019-10-09T03:13:10.0023682Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs" failed to compile: 
2019-10-09T03:13:10.0023755Z status: exit code: 1
2019-10-09T03:13:10.0024897Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-15778-fail/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-15778-fail/auxiliary"
2019-10-09T03:13:10.0025666Z ------------------------------------------
2019-10-09T03:13:10.0025705Z 
2019-10-09T03:13:10.0025956Z ------------------------------------------
2019-10-09T03:13:10.0026003Z stderr:
2019-10-09T03:13:10.0026003Z stderr:
2019-10-09T03:13:10.0026228Z ------------------------------------------
2019-10-09T03:13:10.0026280Z warning: unused import: `LateLintPassObject`
2019-10-09T03:13:10.0026572Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs:10:69
2019-10-09T03:13:10.0026623Z    |
2019-10-09T03:13:10.0026678Z LL | use rustc::lint::{LateContext, LintContext, LintPass, LateLintPass, LateLintPassObject, LintArray};
2019-10-09T03:13:10.0026816Z    |
2019-10-09T03:13:10.0026973Z    = note: `#[warn(unused_imports)]` on by default
2019-10-09T03:13:10.0027023Z 
2019-10-09T03:13:10.0027023Z 
2019-10-09T03:13:10.0027529Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T03:13:10.0028353Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs:33:1
2019-10-09T03:13:10.0028654Z LL | #[plugin_registrar]
2019-10-09T03:13:10.0028701Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T03:13:10.0028768Z    |
2019-10-09T03:13:10.0028813Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0028813Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0028856Z 
2019-10-09T03:13:10.0028918Z error[E0308]: mismatched types
2019-10-09T03:13:10.0029221Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs:35:33
2019-10-09T03:13:10.0029270Z    |
2019-10-09T03:13:10.0029314Z LL |     reg.register_late_lint_pass(box Pass);
2019-10-09T03:13:10.0029387Z    |                                 ^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-09T03:13:10.0029444Z    |
2019-10-09T03:13:10.0029821Z    = note: expected type `fn() -> std::boxed::Box<(dyn for<'a, 'tcx> rustc::lint::LateLintPass<'a, 'tcx> + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-09T03:13:10.0029912Z               found type `std::boxed::Box<Pass>`
2019-10-09T03:13:10.0029989Z error: aborting due to previous error
2019-10-09T03:13:10.0030037Z 
2019-10-09T03:13:10.0030298Z For more information about this error, try `rustc --explain E0308`.
2019-10-09T03:13:10.0030334Z 
2019-10-09T03:13:10.0030334Z 
2019-10-09T03:13:10.0030566Z ------------------------------------------
2019-10-09T03:13:10.0030617Z 
2019-10-09T03:13:10.0030643Z 
2019-10-09T03:13:10.0030883Z ---- [ui] ui-fulldeps/issue-15778-pass.rs stdout ----
2019-10-09T03:13:10.0030916Z 
2019-10-09T03:13:10.0031234Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs" failed to compile: 
2019-10-09T03:13:10.0031298Z status: exit code: 1
2019-10-09T03:13:10.0032189Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-15778-pass/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-15778-pass/auxiliary"
2019-10-09T03:13:10.0032566Z ------------------------------------------
2019-10-09T03:13:10.0032623Z 
2019-10-09T03:13:10.0032853Z ------------------------------------------
2019-10-09T03:13:10.0032900Z stderr:
2019-10-09T03:13:10.0032900Z stderr:
2019-10-09T03:13:10.0033126Z ------------------------------------------
2019-10-09T03:13:10.0033198Z error[E0407]: method `get_lints` is not a member of trait `LintPass`
2019-10-09T03:13:10.0033477Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-09T03:13:10.0033529Z    |
2019-10-09T03:13:10.0033785Z LL | /             fn get_lints(&self) -> LintArray {
2019-10-09T03:13:10.0033835Z LL | |                 $lints
2019-10-09T03:13:10.0033944Z    | |_____________^ not a member of trait `LintPass`
2019-10-09T03:13:10.0033988Z ...
2019-10-09T03:13:10.0033988Z ...
2019-10-09T03:13:10.0034030Z LL | / fake_lint_pass! {
2019-10-09T03:13:10.0034092Z LL | |     PassOkay,
2019-10-09T03:13:10.0034149Z LL | |     lint_array!(CRATE_NOT_OKAY), // Single lint
2019-10-09T03:13:10.0034199Z LL | |     Symbol::intern("rustc_crate_okay")
2019-10-09T03:13:10.0034855Z    | |_- in this macro invocation
2019-10-09T03:13:10.0034894Z 
2019-10-09T03:13:10.0034944Z error[E0407]: method `get_lints` is not a member of trait `LintPass`
2019-10-09T03:13:10.0035974Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-09T03:13:10.0035974Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-09T03:13:10.0036028Z    |
2019-10-09T03:13:10.0036270Z LL | /             fn get_lints(&self) -> LintArray {
2019-10-09T03:13:10.0036339Z LL | |                 $lints
2019-10-09T03:13:10.0036429Z    | |_____________^ not a member of trait `LintPass`
2019-10-09T03:13:10.0036473Z ...
2019-10-09T03:13:10.0036473Z ...
2019-10-09T03:13:10.0036535Z LL | / fake_lint_pass! {
2019-10-09T03:13:10.0036577Z LL | |     PassRedBlue,
2019-10-09T03:13:10.0036628Z LL | |     lint_array!(CRATE_NOT_RED, CRATE_NOT_BLUE), // Multiple lints
2019-10-09T03:13:10.0036714Z LL | |     Symbol::intern("rustc_crate_red"), Symbol::intern("rustc_crate_blue")
2019-10-09T03:13:10.0036984Z    | |_- in this macro invocation
2019-10-09T03:13:10.0037016Z 
2019-10-09T03:13:10.0037083Z error[E0407]: method `get_lints` is not a member of trait `LintPass`
2019-10-09T03:13:10.0037346Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-09T03:13:10.0037346Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-09T03:13:10.0037405Z    |
2019-10-09T03:13:10.0037655Z LL | /             fn get_lints(&self) -> LintArray {
2019-10-09T03:13:10.0037705Z LL | |                 $lints
2019-10-09T03:13:10.0037815Z    | |_____________^ not a member of trait `LintPass`
2019-10-09T03:13:10.0037858Z ...
2019-10-09T03:13:10.0037858Z ...
2019-10-09T03:13:10.0037901Z LL | / fake_lint_pass! {
2019-10-09T03:13:10.0037963Z LL | |     PassGreyGreen,
2019-10-09T03:13:10.0038220Z LL | |     lint_array!(CRATE_NOT_GREY, CRATE_NOT_GREEN, ), // Trailing comma
2019-10-09T03:13:10.0038296Z LL | |     Symbol::intern("rustc_crate_grey"), Symbol::intern("rustc_crate_green")
2019-10-09T03:13:10.0038687Z    | |_- in this macro invocation
2019-10-09T03:13:10.0038721Z 
2019-10-09T03:13:10.0038721Z 
2019-10-09T03:13:10.0038766Z warning: unused import: `LateLintPassObject`
2019-10-09T03:13:10.0039048Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:10:69
2019-10-09T03:13:10.0039106Z    |
2019-10-09T03:13:10.0039159Z LL | use rustc::lint::{LateContext, LintContext, LintPass, LateLintPass, LateLintPassObject, LintArray};
2019-10-09T03:13:10.0039296Z    |
2019-10-09T03:13:10.0039342Z    = note: `#[warn(unused_imports)]` on by default
2019-10-09T03:13:10.0039372Z 
2019-10-09T03:13:10.0039372Z 
2019-10-09T03:13:10.0039760Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T03:13:10.0040182Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:68:1
2019-10-09T03:13:10.0040303Z LL | #[plugin_registrar]
2019-10-09T03:13:10.0040350Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T03:13:10.0040412Z    |
2019-10-09T03:13:10.0040457Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0040457Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0040488Z 
2019-10-09T03:13:10.0040537Z error[E0308]: mismatched types
2019-10-09T03:13:10.0040845Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:70:33
2019-10-09T03:13:10.0040894Z    |
2019-10-09T03:13:10.0040940Z LL |     reg.register_late_lint_pass(box PassOkay);
2019-10-09T03:13:10.0041014Z    |                                 ^^^^^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-09T03:13:10.0041062Z    |
2019-10-09T03:13:10.0041421Z    = note: expected type `fn() -> std::boxed::Box<(dyn for<'a, 'tcx> rustc::lint::LateLintPass<'a, 'tcx> + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-09T03:13:10.0041514Z               found type `std::boxed::Box<PassOkay>`
2019-10-09T03:13:10.0041592Z error[E0308]: mismatched types
2019-10-09T03:13:10.0041871Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:71:33
2019-10-09T03:13:10.0041920Z    |
2019-10-09T03:13:10.0041920Z    |
2019-10-09T03:13:10.0041965Z LL |     reg.register_late_lint_pass(box PassRedBlue);
2019-10-09T03:13:10.0042114Z    |                                 ^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-09T03:13:10.0042179Z    |
2019-10-09T03:13:10.0042558Z    = note: expected type `fn() -> std::boxed::Box<(dyn for<'a, 'tcx> rustc::lint::LateLintPass<'a, 'tcx> + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-09T03:13:10.0042640Z               found type `std::boxed::Box<PassRedBlue>`
2019-10-09T03:13:10.0042714Z error[E0308]: mismatched types
2019-10-09T03:13:10.0042979Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:72:33
2019-10-09T03:13:10.0043047Z    |
2019-10-09T03:13:10.0043047Z    |
2019-10-09T03:13:10.0043093Z LL |     reg.register_late_lint_pass(box PassGreyGreen);
2019-10-09T03:13:10.0043148Z    |                                 ^^^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-09T03:13:10.0043215Z    |
2019-10-09T03:13:10.0043574Z    = note: expected type `fn() -> std::boxed::Box<(dyn for<'a, 'tcx> rustc::lint::LateLintPass<'a, 'tcx> + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-09T03:13:10.0043646Z               found type `std::boxed::Box<PassGreyGreen>`
2019-10-09T03:13:10.0048856Z error: aborting due to 6 previous errors
2019-10-09T03:13:10.0048928Z 
2019-10-09T03:13:10.0048984Z Some errors have detailed explanations: E0308, E0407.
2019-10-09T03:13:10.0049491Z For more information about an error, try `rustc --explain E0308`.
2019-10-09T03:13:10.0049491Z For more information about an error, try `rustc --explain E0308`.
2019-10-09T03:13:10.0049528Z 
2019-10-09T03:13:10.0049775Z ------------------------------------------
2019-10-09T03:13:10.0049812Z 
2019-10-09T03:13:10.0049842Z 
2019-10-09T03:13:10.0050101Z ---- [ui] ui-fulldeps/issue-40001.rs stdout ----
2019-10-09T03:13:10.0050135Z 
2019-10-09T03:13:10.0050433Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs" failed to compile: 
2019-10-09T03:13:10.0050507Z status: exit code: 1
2019-10-09T03:13:10.0051293Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-40001/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-40001/auxiliary"
2019-10-09T03:13:10.0051854Z ------------------------------------------
2019-10-09T03:13:10.0051891Z 
2019-10-09T03:13:10.0052140Z ------------------------------------------
2019-10-09T03:13:10.0052188Z stderr:
2019-10-09T03:13:10.0052188Z stderr:
2019-10-09T03:13:10.0052408Z ------------------------------------------
2019-10-09T03:13:10.0052459Z warning: unused import: `syntax::ext::base::*`
2019-10-09T03:13:10.0052752Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:11:5
2019-10-09T03:13:10.0052851Z LL | use syntax::ext::base::*;
2019-10-09T03:13:10.0052916Z    |     ^^^^^^^^^^^^^^^^^^^^
2019-10-09T03:13:10.0052958Z    |
2019-10-09T03:13:10.0053003Z    = note: `#[warn(unused_imports)]` on by default
2019-10-09T03:13:10.0053003Z    = note: `#[warn(unused_imports)]` on by default
2019-10-09T03:13:10.0053054Z 
2019-10-09T03:13:10.0053099Z warning: unused import: `rustc::hir::map as hir_map`
2019-10-09T03:13:10.0053364Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:17:5
2019-10-09T03:13:10.0053413Z    |
2019-10-09T03:13:10.0053495Z LL | use rustc::hir::map as hir_map;
2019-10-09T03:13:10.0053822Z 
2019-10-09T03:13:10.0053884Z warning: unused import: `rustc::ty`
2019-10-09T03:13:10.0053884Z warning: unused import: `rustc::ty`
2019-10-09T03:13:10.0054188Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:20:5
2019-10-09T03:13:10.0054279Z LL | use rustc::ty;
2019-10-09T03:13:10.0054928Z    |     ^^^^^^^^^
2019-10-09T03:13:10.0054960Z 
2019-10-09T03:13:10.0055003Z warning: unused import: `ast`
2019-10-09T03:13:10.0055003Z warning: unused import: `ast`
2019-10-09T03:13:10.0055660Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:21:14
2019-10-09T03:13:10.0055720Z    |
2019-10-09T03:13:10.0055764Z LL | use syntax::{ast, source_map};
2019-10-09T03:13:10.0055857Z 
2019-10-09T03:13:10.0055857Z 
2019-10-09T03:13:10.0056272Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T03:13:10.0056590Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:23:1
2019-10-09T03:13:10.0056686Z LL | #[plugin_registrar]
2019-10-09T03:13:10.0056733Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T03:13:10.0056797Z    |
2019-10-09T03:13:10.0056842Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0056842Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0056873Z 
2019-10-09T03:13:10.0056933Z error[E0308]: mismatched types
2019-10-09T03:13:10.0057208Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:25:33
2019-10-09T03:13:10.0057258Z    |
2019-10-09T03:13:10.0057324Z LL |     reg.register_late_lint_pass(box MissingWhitelistedAttrPass);
2019-10-09T03:13:10.0057384Z    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-09T03:13:10.0057484Z    |
2019-10-09T03:13:10.0058089Z    = note: expected type `fn() -> std::boxed::Box<(dyn for<'a, 'tcx> rustc::lint::LateLintPass<'a, 'tcx> + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-09T03:13:10.0058177Z               found type `std::boxed::Box<MissingWhitelistedAttrPass>`
2019-10-09T03:13:10.0058277Z error: aborting due to previous error
2019-10-09T03:13:10.0058307Z 
2019-10-09T03:13:10.0058597Z For more information about this error, try `rustc --explain E0308`.
2019-10-09T03:13:10.0058632Z 
2019-10-09T03:13:10.0058632Z 
2019-10-09T03:13:10.0058888Z ------------------------------------------
2019-10-09T03:13:10.0058920Z 
2019-10-09T03:13:10.0058945Z 
2019-10-09T03:13:10.0059194Z ---- [ui] ui-fulldeps/lint-group-plugin-deny-cmdline.rs stdout ----
2019-10-09T03:13:10.0059227Z 
2019-10-09T03:13:10.0059544Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs" failed to compile: 
2019-10-09T03:13:10.0059598Z status: exit code: 1
2019-10-09T03:13:10.0060586Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-group-plugin-deny-cmdline/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-group-plugin-deny-cmdline/auxiliary"
2019-10-09T03:13:10.0064887Z ------------------------------------------
2019-10-09T03:13:10.0064958Z 
2019-10-09T03:13:10.0065272Z ------------------------------------------
2019-10-09T03:13:10.0065322Z stderr:
2019-10-09T03:13:10.0065322Z stderr:
2019-10-09T03:13:10.0065573Z ------------------------------------------
2019-10-09T03:13:10.0065625Z warning: unused import: `LateLintPassObject`
2019-10-09T03:13:10.0065898Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:12:69
2019-10-09T03:13:10.0065969Z    |
2019-10-09T03:13:10.0066042Z LL | use rustc::lint::{LateContext, LintContext, LintPass, LateLintPass, LateLintPassObject, LintArray};
2019-10-09T03:13:10.0066168Z    |
2019-10-09T03:13:10.0066214Z    = note: `#[warn(unused_imports)]` on by default
2019-10-09T03:13:10.0066246Z 
2019-10-09T03:13:10.0066246Z 
2019-10-09T03:13:10.0066874Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T03:13:10.0067165Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:31:1
2019-10-09T03:13:10.0067276Z LL | #[plugin_registrar]
2019-10-09T03:13:10.0067324Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T03:13:10.0067368Z    |
2019-10-09T03:13:10.0067432Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0067432Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0067464Z 
2019-10-09T03:13:10.0067506Z error[E0308]: mismatched types
2019-10-09T03:13:10.0068187Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:33:33
2019-10-09T03:13:10.0068265Z    |
2019-10-09T03:13:10.0068310Z LL |     reg.register_late_lint_pass(box Pass);
2019-10-09T03:13:10.0068365Z    |                                 ^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-09T03:13:10.0068430Z    |
2019-10-09T03:13:10.0068825Z    = note: expected type `fn() -> std::boxed::Box<(dyn for<'a, 'tcx> rustc::lint::LateLintPass<'a, 'tcx> + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-09T03:13:10.0079117Z               found type `std::boxed::Box<Pass>`
2019-10-09T03:13:10.0079243Z error: aborting due to previous error
2019-10-09T03:13:10.0079274Z 
2019-10-09T03:13:10.0079748Z For more information about this error, try `rustc --explain E0308`.
2019-10-09T03:13:10.0079813Z 
2019-10-09T03:13:10.0079813Z 
2019-10-09T03:13:10.0080051Z ------------------------------------------
2019-10-09T03:13:10.0080085Z 
2019-10-09T03:13:10.0080111Z 
2019-10-09T03:13:10.0080619Z ---- [ui] ui-fulldeps/lint-group-plugin.rs stdout ----
2019-10-09T03:13:10.0080661Z 
2019-10-09T03:13:10.0080966Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs" failed to compile: 
2019-10-09T03:13:10.0081023Z status: exit code: 1
2019-10-09T03:13:10.0081831Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-group-plugin/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-group-plugin/auxiliary"
2019-10-09T03:13:10.0082372Z ------------------------------------------
2019-10-09T03:13:10.0082421Z 
2019-10-09T03:13:10.0082683Z ------------------------------------------
2019-10-09T03:13:10.0082751Z stderr:
2019-10-09T03:13:10.0082751Z stderr:
2019-10-09T03:13:10.0082978Z ------------------------------------------
2019-10-09T03:13:10.0083030Z warning: unused import: `LateLintPassObject`
2019-10-09T03:13:10.0083315Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:12:69
2019-10-09T03:13:10.0083376Z    |
2019-10-09T03:13:10.0083432Z LL | use rustc::lint::{LateContext, LintContext, LintPass, LateLintPass, LateLintPassObject, LintArray};
2019-10-09T03:13:10.0083561Z    |
2019-10-09T03:13:10.0083606Z    = note: `#[warn(unused_imports)]` on by default
2019-10-09T03:13:10.0083655Z 
2019-10-09T03:13:10.0083655Z 
2019-10-09T03:13:10.0084043Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T03:13:10.0084338Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:31:1
2019-10-09T03:13:10.0084838Z LL | #[plugin_registrar]
2019-10-09T03:13:10.0084888Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T03:13:10.0084953Z    |
2019-10-09T03:13:10.0084998Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0084998Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0085164Z 
2019-10-09T03:13:10.0085207Z error[E0308]: mismatched types
2019-10-09T03:13:10.0085562Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:33:33
2019-10-09T03:13:10.0085612Z    |
2019-10-09T03:13:10.0085657Z LL |     reg.register_late_lint_pass(box Pass);
2019-10-09T03:13:10.0085732Z    |                                 ^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-09T03:13:10.0085780Z    |
2019-10-09T03:13:10.0086160Z    = note: expected type `fn() -> std::boxed::Box<(dyn for<'a, 'tcx> rustc::lint::LateLintPass<'a, 'tcx> + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-09T03:13:10.0086248Z               found type `std::boxed::Box<Pass>`
2019-10-09T03:13:10.0086325Z error: aborting due to previous error
2019-10-09T03:13:10.0086373Z 
2019-10-09T03:13:10.0086630Z For more information about this error, try `rustc --explain E0308`.
2019-10-09T03:13:10.0086666Z 
2019-10-09T03:13:10.0086666Z 
2019-10-09T03:13:10.0086897Z ------------------------------------------
2019-10-09T03:13:10.0086947Z 
2019-10-09T03:13:10.0086973Z 
2019-10-09T03:13:10.0087386Z ---- [ui] ui-fulldeps/lint-plugin-cmdline-allow.rs stdout ----
2019-10-09T03:13:10.0087423Z 
2019-10-09T03:13:10.0087733Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" failed to compile: 
2019-10-09T03:13:10.0087989Z status: exit code: 1
2019-10-09T03:13:10.0088884Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-cmdline-allow/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-cmdline-allow/auxiliary"
2019-10-09T03:13:10.0089243Z ------------------------------------------
2019-10-09T03:13:10.0089279Z 
2019-10-09T03:13:10.0089525Z ------------------------------------------
2019-10-09T03:13:10.0089571Z stderr:
2019-10-09T03:13:10.0089571Z stderr:
2019-10-09T03:13:10.0089792Z ------------------------------------------
2019-10-09T03:13:10.0090183Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T03:13:10.0090460Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:29:1
2019-10-09T03:13:10.0090693Z LL | #[plugin_registrar]
2019-10-09T03:13:10.0090752Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T03:13:10.0090815Z    |
2019-10-09T03:13:10.0090861Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0090861Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0090892Z 
2019-10-09T03:13:10.0090934Z error[E0308]: mismatched types
2019-10-09T03:13:10.0091246Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:31:34
2019-10-09T03:13:10.0091304Z    |
2019-10-09T03:13:10.0091352Z LL |     reg.register_early_lint_pass(box Pass as EarlyLintPassObject);
2019-10-09T03:13:10.0091431Z    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-09T03:13:10.0091479Z    |
2019-10-09T03:13:10.0091833Z    = note: expected type `fn() -> std::boxed::Box<(dyn rustc::lint::EarlyLintPass + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-09T03:13:10.0092346Z               found type `std::boxed::Box<(dyn rustc::lint::EarlyLintPass + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-09T03:13:10.0092436Z error: aborting due to previous error
2019-10-09T03:13:10.0092483Z 
2019-10-09T03:13:10.0092736Z For more information about this error, try `rustc --explain E0308`.
2019-10-09T03:13:10.0092771Z 
2019-10-09T03:13:10.0092771Z 
2019-10-09T03:13:10.0093105Z ------------------------------------------
2019-10-09T03:13:10.0093155Z 
2019-10-09T03:13:10.0093182Z 
2019-10-09T03:13:10.0093426Z ---- [ui] ui-fulldeps/lint-plugin-cmdline-load.rs stdout ----
2019-10-09T03:13:10.0093460Z 
2019-10-09T03:13:10.0095373Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" failed to compile: 
2019-10-09T03:13:10.0095462Z status: exit code: 1
2019-10-09T03:13:10.0096381Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-cmdline-load/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-cmdline-load/auxiliary"
2019-10-09T03:13:10.0096740Z ------------------------------------------
2019-10-09T03:13:10.0096774Z 
2019-10-09T03:13:10.0097021Z ------------------------------------------
2019-10-09T03:13:10.0097068Z stderr:
2019-10-09T03:13:10.0097068Z stderr:
2019-10-09T03:13:10.0097376Z ------------------------------------------
2019-10-09T03:13:10.0097763Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T03:13:10.0098385Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:29:1
2019-10-09T03:13:10.0098632Z LL | #[plugin_registrar]
2019-10-09T03:13:10.0098679Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T03:13:10.0098741Z    |
2019-10-09T03:13:10.0098787Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0098787Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0098818Z 
2019-10-09T03:13:10.0098860Z error[E0308]: mismatched types
2019-10-09T03:13:10.0099162Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:31:34
2019-10-09T03:13:10.0099221Z    |
2019-10-09T03:13:10.0099273Z LL |     reg.register_early_lint_pass(box Pass as EarlyLintPassObject);
2019-10-09T03:13:10.0099350Z    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-09T03:13:10.0099400Z    |
2019-10-09T03:13:10.0099746Z    = note: expected type `fn() -> std::boxed::Box<(dyn rustc::lint::EarlyLintPass + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-09T03:13:10.0100303Z               found type `std::boxed::Box<(dyn rustc::lint::EarlyLintPass + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-09T03:13:10.0100406Z error: aborting due to previous error
2019-10-09T03:13:10.0100455Z 
2019-10-09T03:13:10.0100740Z For more information about this error, try `rustc --explain E0308`.
2019-10-09T03:13:10.0100775Z 
2019-10-09T03:13:10.0100775Z 
2019-10-09T03:13:10.0101507Z ------------------------------------------
2019-10-09T03:13:10.0101567Z 
2019-10-09T03:13:10.0101594Z 
2019-10-09T03:13:10.0101932Z ---- [ui] ui-fulldeps/lint-plugin-deny-attr.rs stdout ----
2019-10-09T03:13:10.0101965Z 
2019-10-09T03:13:10.0102248Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" failed to compile: 
2019-10-09T03:13:10.0102321Z status: exit code: 1
2019-10-09T03:13:10.0103117Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-deny-attr/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-deny-attr/auxiliary"
2019-10-09T03:13:10.0103628Z ------------------------------------------
2019-10-09T03:13:10.0103774Z 
2019-10-09T03:13:10.0104020Z ------------------------------------------
2019-10-09T03:13:10.0104066Z stderr:
2019-10-09T03:13:10.0104066Z stderr:
2019-10-09T03:13:10.0104339Z ------------------------------------------
2019-10-09T03:13:10.0105217Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T03:13:10.0105500Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:29:1
2019-10-09T03:13:10.0105626Z LL | #[plugin_registrar]
2019-10-09T03:13:10.0105675Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T03:13:10.0105738Z    |
2019-10-09T03:13:10.0105783Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0105783Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0105813Z 
2019-10-09T03:13:10.0105855Z error[E0308]: mismatched types
2019-10-09T03:13:10.0106134Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:31:34
2019-10-09T03:13:10.0106408Z    |
2019-10-09T03:13:10.0106458Z LL |     reg.register_early_lint_pass(box Pass as EarlyLintPassObject);
2019-10-09T03:13:10.0106537Z    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-09T03:13:10.0106584Z    |
2019-10-09T03:13:10.0106968Z    = note: expected type `fn() -> std::boxed::Box<(dyn rustc::lint::EarlyLintPass + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-09T03:13:10.0107439Z               found type `std::boxed::Box<(dyn rustc::lint::EarlyLintPass + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-09T03:13:10.0107530Z error: aborting due to previous error
2019-10-09T03:13:10.0107578Z 
2019-10-09T03:13:10.0108248Z For more information about this error, try `rustc --explain E0308`.
2019-10-09T03:13:10.0108297Z 
2019-10-09T03:13:10.0108297Z 
2019-10-09T03:13:10.0108563Z ------------------------------------------
2019-10-09T03:13:10.0108596Z 
2019-10-09T03:13:10.0108641Z 
2019-10-09T03:13:10.0108884Z ---- [ui] ui-fulldeps/lint-plugin-deny-cmdline.rs stdout ----
2019-10-09T03:13:10.0108919Z 
2019-10-09T03:13:10.0109204Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" failed to compile: 
2019-10-09T03:13:10.0109276Z status: exit code: 1
2019-10-09T03:13:10.0110215Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-deny-cmdline/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-deny-cmdline/auxiliary"
2019-10-09T03:13:10.0110606Z ------------------------------------------
2019-10-09T03:13:10.0110641Z 
2019-10-09T03:13:10.0110885Z ------------------------------------------
2019-10-09T03:13:10.0110932Z stderr:
2019-10-09T03:13:10.0110932Z stderr:
2019-10-09T03:13:10.0111151Z ------------------------------------------
2019-10-09T03:13:10.0111532Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T03:13:10.0111807Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:29:1
2019-10-09T03:13:10.0111930Z LL | #[plugin_registrar]
2019-10-09T03:13:10.0111977Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T03:13:10.0112039Z    |
2019-10-09T03:13:10.0112083Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0112083Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T03:13:10.0112113Z 
2019-10-09T03:13:10.0112156Z error[E0308]: mismatched types
2019-10-09T03:13:10.0112436Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:31:34
2019-10-09T03:13:10.0112588Z    |
2019-10-09T03:13:10.0112635Z LL |     reg.register_early_lint_pass(box Pass as EarlyLintPassObject);
2019-10-09T03:13:10.0112711Z    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected fn pointer, found struct `std::boxed::Box`
2019-10-09T03:13:10.0112764Z    |
2019-10-09T03:13:10.0113131Z    = note: expected type `fn() -> std::boxed::Box<(dyn rustc::lint::EarlyLintPass + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
2019-10-09T03:13:10.0113510Z               found type `std::boxed::Box<(dyn rustc::lint::EarlyLintPass + rustc_data_structures::sync::Send + rustc_data_structures::sync::Sync + 'static)>`
---
2019-10-09T03:13:10.0181388Z test result: FAILED. 54 passed; 15 failed; 0 ignored; 0 measured; 0 filtered out
2019-10-09T03:13:10.0181425Z 
2019-10-09T03:13:10.0181451Z 
2019-10-09T03:13:10.0181494Z 
2019-10-09T03:13:10.0183009Z 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-fulldeps" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2019-10-09T03:13:10.0183283Z 
2019-10-09T03:13:10.0183311Z 
2019-10-09T03:13:10.0183463Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-10-09T03:13:10.0183523Z Build completed unsuccessfully in 1:11:39
2019-10-09T03:13:10.0183523Z Build completed unsuccessfully in 1:11:39
2019-10-09T03:13:10.0183844Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:537:22
2019-10-09T03:13:10.0183905Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-10-09T03:13:10.0187330Z == clock drift check ==
2019-10-09T03:13:10.0188518Z   local time: Wed Oct  9 03:13:10 UTC 2019
2019-10-09T03:13:10.2877852Z   network time: Wed, 09 Oct 2019 03:13:10 GMT
2019-10-09T03:13:10.8125215Z == end clock drift check ==
2019-10-09T03:13:10.8994907Z ##[error]Bash exited with code '1'.
2019-10-09T03:13:10.9057112Z ##[section]Starting: Checkout
2019-10-09T03:13:10.9059162Z ==============================================================================
2019-10-09T03:13:10.9059220Z Task         : Get sources
2019-10-09T03:13:10.9059287Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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)

@Mark-Simulacrum Mark-Simulacrum force-pushed the Mark-Simulacrum:lockless-lintstore branch from 0ec0d82 to 35585bc Oct 9, 2019
@Mark-Simulacrum

This comment has been minimized.

Copy link
Member Author

Mark-Simulacrum commented Oct 9, 2019

And, with the last set of commits, this PR now entirely drops LintStore as a mutable (via locks) field from global-ish structures (Session, in particular).

Plugin registration of lints is also altered; they are now expected to directly call methods of LintStore rather than pushing into vectors and then those vectors being appended onto lint store. This seems both easier and less error prone.

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Oct 9, 2019

The job mingw-check of your PR failed (pretty log, 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-10-09T14:23:17.5019128Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-10-09T14:23:17.5181629Z ##[command]git config gc.auto 0
2019-10-09T14:23:17.5253775Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-10-09T14:23:17.5310707Z ##[command]git config --get-all http.proxy
2019-10-09T14:23:17.5437654Z ##[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/65193/merge:refs/remotes/pull/65193/merge
---
2019-10-09T14:31:19.9757355Z     Checking syntax_pos v0.0.0 (/checkout/src/libsyntax_pos)
2019-10-09T14:31:21.3254353Z     Checking rustc_errors v0.0.0 (/checkout/src/librustc_errors)
2019-10-09T14:31:22.5572820Z     Checking fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
2019-10-09T14:31:34.6179665Z     Checking syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
2019-10-09T14:31:47.3861598Z error[E0277]: `std::rc::Rc<lint::context::LintStore>` cannot be shared between threads safely
2019-10-09T14:31:47.3864809Z      |
2019-10-09T14:31:47.3864809Z      |
2019-10-09T14:31:47.3865012Z 1429 |     join(|| {
2019-10-09T14:31:47.3865317Z      |     ^^^^ `std::rc::Rc<lint::context::LintStore>` cannot be shared between threads safely
2019-10-09T14:31:47.3865491Z      | 
2019-10-09T14:31:47.3865757Z     ::: /cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.3.0/src/join/mod.rs:97:25
2019-10-09T14:31:47.3865932Z      |
2019-10-09T14:31:47.3866144Z 97   |     A: FnOnce() -> RA + Send,
2019-10-09T14:31:47.3867193Z      |                         ---- required by this bound in `rustc_rayon_core::join::join`
2019-10-09T14:31:47.3867435Z      |
2019-10-09T14:31:47.3868335Z      = help: within `ty::context::TyCtxt<'tcx>`, the trait `std::marker::Sync` is not implemented for `std::rc::Rc<lint::context::LintStore>`
2019-10-09T14:31:47.3869210Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'tcx>`
2019-10-09T14:31:47.3869547Z      = note: required because it appears within the type `&'tcx ty::context::GlobalCtxt<'tcx>`
2019-10-09T14:31:47.3869883Z      = note: required because it appears within the type `ty::context::TyCtxt<'tcx>`
2019-10-09T14:31:47.3870557Z      = note: required because of the requirements on the impl of `std::marker::Send` for `&ty::context::TyCtxt<'tcx>`
2019-10-09T14:31:47.3871008Z      = note: required because it appears within the type `[closure@src/librustc/lint/context.rs:1429:10: 1434:6 tcx:&ty::context::TyCtxt<'tcx>, builtin_lints:impl FnOnce() -> T + Send]`
2019-10-09T14:31:47.3871062Z 
2019-10-09T14:31:52.4173692Z error[E0277]: `std::rc::Rc<lint::context::LintStore>` cannot be shared between threads safely
2019-10-09T14:31:52.4175738Z      |
2019-10-09T14:31:52.4175738Z      |
2019-10-09T14:31:52.4177053Z 2786 |         par_iter(&self.hir().krate().body_ids).for_each(|&body_id| {
2019-10-09T14:31:52.4178185Z      |                                                ^^^^^^^^ `std::rc::Rc<lint::context::LintStore>` cannot be shared between threads safely
2019-10-09T14:31:52.4178888Z      |
2019-10-09T14:31:52.4180706Z      = help: within `[closure@src/librustc/ty/mod.rs:2786:57: 2788:10 f:&F, self:&ty::context::TyCtxt<'tcx>]`, the trait `std::marker::Sync` is not implemented for `std::rc::Rc<lint::context::LintStore>`
2019-10-09T14:31:52.4182040Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'tcx>`
2019-10-09T14:31:52.4182595Z      = note: required because it appears within the type `&'tcx ty::context::GlobalCtxt<'tcx>`
2019-10-09T14:31:52.4183285Z      = note: required because it appears within the type `ty::context::TyCtxt<'tcx>`
2019-10-09T14:31:52.4183733Z      = note: required because it appears within the type `&ty::context::TyCtxt<'tcx>`
2019-10-09T14:31:52.4184242Z      = note: required because it appears within the type `[closure@src/librustc/ty/mod.rs:2786:57: 2788:10 f:&F, self:&ty::context::TyCtxt<'tcx>]`
2019-10-09T14:31:52.4184565Z 
2019-10-09T14:31:56.7581499Z error[E0277]: `std::rc::Rc<lint::context::LintStore>` cannot be shared between threads safely
2019-10-09T14:31:56.7582744Z     --> src/librustc/ty/context.rs:1945:13
2019-10-09T14:31:56.7584828Z      |
2019-10-09T14:31:56.7585123Z 1945 |             sync::assert_sync::<ImplicitCtxt<'_, '_>>();
2019-10-09T14:31:56.7585503Z      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::rc::Rc<lint::context::LintStore>` cannot be shared between threads safely
2019-10-09T14:31:56.7590794Z     ::: /checkout/src/librustc_data_structures/sync.rs:427:32
2019-10-09T14:31:56.7591242Z      |
2019-10-09T14:31:56.7591242Z      |
2019-10-09T14:31:56.7591723Z 427  | pub fn assert_sync<T: ?Sized + Sync>() {}
2019-10-09T14:31:56.7592313Z      |                                ---- required by this bound in `rustc_data_structures::sync::assert_sync`
2019-10-09T14:31:56.7592749Z      |
2019-10-09T14:31:56.7593331Z      = help: within `ty::context::tls::ImplicitCtxt<'_, '_>`, the trait `std::marker::Sync` is not implemented for `std::rc::Rc<lint::context::LintStore>`
2019-10-09T14:31:56.7594149Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'_>`
2019-10-09T14:31:56.7594698Z      = note: required because it appears within the type `&ty::context::GlobalCtxt<'_>`
2019-10-09T14:31:56.7595202Z      = note: required because it appears within the type `ty::context::TyCtxt<'_>`
2019-10-09T14:31:56.7596672Z      = note: required because it appears within the type `ty::context::tls::ImplicitCtxt<'_, '_>`
2019-10-09T14:31:58.0845307Z error: aborting due to 3 previous errors
2019-10-09T14:31:58.0845423Z 
2019-10-09T14:31:58.0846040Z For more information about this error, try `rustc --explain E0277`.
2019-10-09T14:31:58.2518775Z error: could not compile `rustc`.
---
2019-10-09T14:31:58.2602841Z == clock drift check ==
2019-10-09T14:31:58.2619949Z   local time: Wed Oct  9 14:31:58 UTC 2019
2019-10-09T14:31:58.3326637Z   network time: Wed, 09 Oct 2019 14:31:58 GMT
2019-10-09T14:31:58.3328567Z == end clock drift check ==
2019-10-09T14:31:59.0357566Z ##[error]Bash exited with code '1'.
2019-10-09T14:31:59.0387858Z ##[section]Starting: Checkout
2019-10-09T14:31:59.0389779Z ==============================================================================
2019-10-09T14:31:59.0389821Z Task         : Get sources
2019-10-09T14:31:59.0389874Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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)

src/librustc/ty/context.rs Outdated Show resolved Hide resolved
src/librustc_driver/lib.rs Outdated Show resolved Hide resolved
@@ -103,32 +89,6 @@ impl<'a> Registry<'a> {
self.register_syntax_extension(Symbol::intern(name), ext);
}

/// Register a compiler lint pass.

This comment has been minimized.

Copy link
@Zoxc

Zoxc Oct 9, 2019

Contributor

Why did you remove these functions? This seems to break plugins registering lints?

This comment has been minimized.

Copy link
@Mark-Simulacrum

Mark-Simulacrum Oct 9, 2019

Author Member

We publicly expose the lint store now, and it should be a simple transform to use registry.lint_store.register vs these functions. Plugins needed to change anyway as we've changed the signature here and expect separate registration of lints and lint passes.

@Mark-Simulacrum Mark-Simulacrum force-pushed the Mark-Simulacrum:lockless-lintstore branch 2 times, most recently from ba73f32 to a266474 Oct 9, 2019
@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Oct 9, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, 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-10-09T16:14:40.0091739Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-10-09T16:14:40.0303731Z ##[command]git config gc.auto 0
2019-10-09T16:14:40.0378761Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-10-09T16:14:40.0443357Z ##[command]git config --get-all http.proxy
2019-10-09T16:14:40.0611054Z ##[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/65193/merge:refs/remotes/pull/65193/merge
---
2019-10-09T17:20:16.6793759Z .................................................................................................... 1600/9142
2019-10-09T17:20:25.0221018Z .................................................................................................... 1700/9142
2019-10-09T17:20:37.2397301Z .................i...............i.................................................................. 1800/9142
2019-10-09T17:20:44.8417303Z .................................................................................................... 1900/9142
2019-10-09T17:21:02.0649558Z ........iiiii....................................................................................... 2000/9142
2019-10-09T17:21:12.9624171Z .................................................................................................... 2200/9142
2019-10-09T17:21:15.9259493Z .................................................................................................... 2300/9142
2019-10-09T17:21:22.2389935Z .................................................................................................... 2400/9142
2019-10-09T17:21:29.3682754Z .................................................................................................... 2500/9142
---
2019-10-09T17:24:36.5562775Z .................................................................................................... 4700/9142
2019-10-09T17:24:44.1745748Z .i...............i.................................................................................. 4800/9142
2019-10-09T17:24:55.7467023Z .................................................................................................... 4900/9142
2019-10-09T17:25:01.6432920Z .................................................................................................... 5000/9142
2019-10-09T17:25:14.0315324Z ...............................................................................................ii.ii 5100/9142
2019-10-09T17:25:25.6093326Z .................................................................................................... 5300/9142
2019-10-09T17:25:36.1809416Z .................................................................................................... 5400/9142
2019-10-09T17:25:43.2538975Z .............................................................i...................................... 5500/9142
2019-10-09T17:25:50.9831219Z .................................................................................................... 5600/9142
2019-10-09T17:25:50.9831219Z .................................................................................................... 5600/9142
2019-10-09T17:25:58.7829213Z .................................................................................................... 5700/9142
2019-10-09T17:26:11.5397427Z ..........................................................ii...i..ii...........i.................... 5800/9142
2019-10-09T17:26:39.5417216Z .................................................................................................... 6000/9142
2019-10-09T17:26:49.1049916Z .................................................................................................... 6100/9142
2019-10-09T17:26:49.1049916Z .................................................................................................... 6100/9142
2019-10-09T17:27:02.0509065Z ................................................................i..ii............................... 6200/9142
2019-10-09T17:27:34.7615721Z .................................................................................................... 6400/9142
2019-10-09T17:27:37.1074829Z ........................i........................................................................... 6500/9142
2019-10-09T17:27:39.4997733Z .................................................................................................i.. 6600/9142
2019-10-09T17:27:42.4406018Z .................................................................................................... 6700/9142
---
2019-10-09T17:32:45.2981315Z  finished in 5.988
2019-10-09T17:32:45.3195814Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-09T17:32:45.8925644Z 
2019-10-09T17:32:45.8930972Z running 150 tests
2019-10-09T17:32:49.1045242Z i....iii......iii..iiii....i.............................i..i..................i....i.........ii.i.i 100/150
2019-10-09T17:32:51.2536951Z ..iiii..............i.........iii.i.......ii......
2019-10-09T17:32:51.2537481Z 
2019-10-09T17:32:51.2543304Z  finished in 5.934
2019-10-09T17:32:51.2739597Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-09T17:32:51.4446861Z 
---
2019-10-09T17:32:54.3900154Z  finished in 2.502
2019-10-09T17:32:54.3900422Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-09T17:32:54.3900478Z 
2019-10-09T17:32:54.3900518Z running 9 tests
2019-10-09T17:32:54.3900935Z iiiiiiiii
2019-10-09T17:32:54.3901640Z 
2019-10-09T17:32:54.3901678Z  finished in 0.176
2019-10-09T17:32:54.3901926Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-09T17:32:54.3901976Z 
---
2019-10-09T17:33:14.2187324Z  finished in 20.222
2019-10-09T17:33:14.2431908Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-09T17:33:14.4447190Z 
2019-10-09T17:33:14.4447343Z running 123 tests
2019-10-09T17:33:42.4254214Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....ii..........iiii..........i...ii...i.......ii. 100/123
2019-10-09T17:33:47.7884637Z i.i.i......iii.i.....ii
2019-10-09T17:33:47.7885181Z 
2019-10-09T17:33:47.7887568Z  finished in 33.545
2019-10-09T17:33:47.7897495Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-09T17:33:47.7899850Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
2019-10-09T17:33:47.7899850Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
2019-10-09T17:33:47.8131468Z Check compiletest suite=ui-fulldeps mode=ui (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-10-09T17:33:47.9850232Z 
2019-10-09T17:33:47.9850753Z running 69 tests
2019-10-09T17:34:50.6628477Z .......................FF........F.FFFFFFFFFF.F......................
2019-10-09T17:34:50.6636281Z thread '
2019-10-09T17:34:50.6636822Z ---- [ui] ui-fulldeps/issue-15778-fail.rs stdout ----
2019-10-09T17:34:50.6637003Z 
2019-10-09T17:34:50.6637003Z 
2019-10-09T17:34:50.6637442Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs" failed to compile: 
2019-10-09T17:34:50.6637672Z status: exit code: 1
2019-10-09T17:34:50.6639141Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-15778-fail/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-15778-fail/auxiliary"
2019-10-09T17:34:50.6643303Z ------------------------------------------
2019-10-09T17:34:50.6643379Z 
2019-10-09T17:34:50.6643829Z ------------------------------------------
2019-10-09T17:34:50.6643887Z stderr:
2019-10-09T17:34:50.6643887Z stderr:
2019-10-09T17:34:50.6644178Z ------------------------------------------
2019-10-09T17:34:50.6644229Z warning: unused import: `LateLintPassObject`
2019-10-09T17:34:50.6644739Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs:10:69
2019-10-09T17:34:50.6644828Z    |
2019-10-09T17:34:50.6644884Z LL | use rustc::lint::{LateContext, LintContext, LintPass, LateLintPass, LateLintPassObject, LintArray};
2019-10-09T17:34:50.6645187Z    |
2019-10-09T17:34:50.6645235Z    = note: `#[warn(unused_imports)]` on by default
2019-10-09T17:34:50.6645277Z 
2019-10-09T17:34:50.6645277Z 
2019-10-09T17:34:50.6646086Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T17:34:50.6646633Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs:33:1
2019-10-09T17:34:50.6646757Z LL | #[plugin_registrar]
2019-10-09T17:34:50.6646816Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T17:34:50.6646858Z    |
2019-10-09T17:34:50.6646918Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6646918Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6646948Z 
2019-10-09T17:34:50.6647626Z error[E0599]: no method named `register_lint` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6647920Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs:35:9
2019-10-09T17:34:50.6648937Z    |
2019-10-09T17:34:50.6648988Z LL |     reg.register_lint(&[&CRATE_NOT_OKAY]);
2019-10-09T17:34:50.6649365Z    |         ^^^^^^^^^^^^^ method not found in `&mut rustc_driver::rustc_plugin_impl::Registry<'_>`
2019-10-09T17:34:50.6650204Z 
2019-10-09T17:34:50.6650601Z error[E0599]: no method named `register_late_lint_pass` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6651133Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate.rs:36:9
2019-10-09T17:34:50.6651225Z    |
2019-10-09T17:34:50.6651507Z LL |     reg.register_late_lint_pass(|| box Pass);
2019-10-09T17:34:50.6651926Z    |         ^^^^^^^^^^^^^^^^^^^^^^^ help: there is a method with a similar name: `register_llvm_pass`
2019-10-09T17:34:50.6652029Z error: aborting due to 2 previous errors
2019-10-09T17:34:50.6652056Z 
2019-10-09T17:34:50.6652369Z For more information about this error, try `rustc --explain E0599`.
2019-10-09T17:34:50.6652578Z 
2019-10-09T17:34:50.6652578Z 
2019-10-09T17:34:50.6652860Z ------------------------------------------
2019-10-09T17:34:50.6653003Z 
2019-10-09T17:34:50.6653032Z 
2019-10-09T17:34:50.6653504Z ---- [ui] ui-fulldeps/issue-15778-pass.rs stdout ----
2019-10-09T17:34:50.6653585Z 
2019-10-09T17:34:50.6654064Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs" failed to compile: 
2019-10-09T17:34:50.6654128Z status: exit code: 1
2019-10-09T17:34:50.6655370Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-15778-pass/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-15778-pass/auxiliary"
2019-10-09T17:34:50.6655946Z ------------------------------------------
2019-10-09T17:34:50.6656463Z 
2019-10-09T17:34:50.6656762Z ------------------------------------------
2019-10-09T17:34:50.6656829Z stderr:
2019-10-09T17:34:50.6656829Z stderr:
2019-10-09T17:34:50.6657287Z ------------------------------------------
2019-10-09T17:34:50.6657539Z error[E0407]: method `get_lints` is not a member of trait `LintPass`
2019-10-09T17:34:50.6658612Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-09T17:34:50.6658720Z    |
2019-10-09T17:34:50.6658996Z LL | /             fn get_lints(&self) -> LintArray {
2019-10-09T17:34:50.6659048Z LL | |                 $lints
2019-10-09T17:34:50.6659164Z    | |_____________^ not a member of trait `LintPass`
2019-10-09T17:34:50.6659209Z ...
2019-10-09T17:34:50.6659209Z ...
2019-10-09T17:34:50.6659272Z LL | / fake_lint_pass! {
2019-10-09T17:34:50.6659316Z LL | |     PassOkay,
2019-10-09T17:34:50.6659364Z LL | |     lint_array!(CRATE_NOT_OKAY), // Single lint
2019-10-09T17:34:50.6659431Z LL | |     Symbol::intern("rustc_crate_okay")
2019-10-09T17:34:50.6659707Z    | |_- in this macro invocation
2019-10-09T17:34:50.6659740Z 
2019-10-09T17:34:50.6659806Z error[E0407]: method `get_lints` is not a member of trait `LintPass`
2019-10-09T17:34:50.6660068Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-09T17:34:50.6660068Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-09T17:34:50.6660118Z    |
2019-10-09T17:34:50.6660368Z LL | /             fn get_lints(&self) -> LintArray {
2019-10-09T17:34:50.6660418Z LL | |                 $lints
2019-10-09T17:34:50.6660527Z    | |_____________^ not a member of trait `LintPass`
2019-10-09T17:34:50.6660571Z ...
2019-10-09T17:34:50.6660571Z ...
2019-10-09T17:34:50.6660618Z LL | / fake_lint_pass! {
2019-10-09T17:34:50.6660661Z LL | |     PassRedBlue,
2019-10-09T17:34:50.6660728Z LL | |     lint_array!(CRATE_NOT_RED, CRATE_NOT_BLUE), // Multiple lints
2019-10-09T17:34:50.6660783Z LL | |     Symbol::intern("rustc_crate_red"), Symbol::intern("rustc_crate_blue")
2019-10-09T17:34:50.6661247Z    | |_- in this macro invocation
2019-10-09T17:34:50.6661281Z 
2019-10-09T17:34:50.6661329Z error[E0407]: method `get_lints` is not a member of trait `LintPass`
2019-10-09T17:34:50.6661583Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-09T17:34:50.6661583Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:25:13
2019-10-09T17:34:50.6661654Z    |
2019-10-09T17:34:50.6662037Z LL | /             fn get_lints(&self) -> LintArray {
2019-10-09T17:34:50.6662161Z LL | |                 $lints
2019-10-09T17:34:50.6662277Z    | |_____________^ not a member of trait `LintPass`
2019-10-09T17:34:50.6662318Z ...
2019-10-09T17:34:50.6662318Z ...
2019-10-09T17:34:50.6662376Z LL | / fake_lint_pass! {
2019-10-09T17:34:50.6662418Z LL | |     PassGreyGreen,
2019-10-09T17:34:50.6662465Z LL | |     lint_array!(CRATE_NOT_GREY, CRATE_NOT_GREEN, ), // Trailing comma
2019-10-09T17:34:50.6662536Z LL | |     Symbol::intern("rustc_crate_grey"), Symbol::intern("rustc_crate_green")
2019-10-09T17:34:50.6662813Z    | |_- in this macro invocation
2019-10-09T17:34:50.6662843Z 
2019-10-09T17:34:50.6662843Z 
2019-10-09T17:34:50.6662903Z warning: unused import: `LateLintPassObject`
2019-10-09T17:34:50.6663142Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:10:69
2019-10-09T17:34:50.6663187Z    |
2019-10-09T17:34:50.6663252Z LL | use rustc::lint::{LateContext, LintContext, LintPass, LateLintPass, LateLintPassObject, LintArray};
2019-10-09T17:34:50.6663364Z    |
2019-10-09T17:34:50.6663426Z    = note: `#[warn(unused_imports)]` on by default
2019-10-09T17:34:50.6663455Z 
2019-10-09T17:34:50.6663455Z 
2019-10-09T17:34:50.6664051Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T17:34:50.6664395Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:68:1
2019-10-09T17:34:50.6664485Z LL | #[plugin_registrar]
2019-10-09T17:34:50.6664775Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T17:34:50.6664817Z    |
2019-10-09T17:34:50.6664860Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6664860Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6664888Z 
2019-10-09T17:34:50.6665274Z error[E0599]: no method named `register_late_lint_pass` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6665530Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:70:9
2019-10-09T17:34:50.6665601Z    |
2019-10-09T17:34:50.6665644Z LL |     reg.register_late_lint_pass(box PassOkay);
2019-10-09T17:34:50.6665697Z    |         ^^^^^^^^^^^^^^^^^^^^^^^ help: there is a method with a similar name: `register_llvm_pass`
2019-10-09T17:34:50.6665730Z 
2019-10-09T17:34:50.6666286Z error[E0599]: no method named `register_late_lint_pass` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6666551Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:71:9
2019-10-09T17:34:50.6666608Z    |
2019-10-09T17:34:50.6666849Z LL |     reg.register_late_lint_pass(box PassRedBlue);
2019-10-09T17:34:50.6666907Z    |         ^^^^^^^^^^^^^^^^^^^^^^^ help: there is a method with a similar name: `register_llvm_pass`
2019-10-09T17:34:50.6666939Z 
2019-10-09T17:34:50.6667331Z error[E0599]: no method named `register_late_lint_pass` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6668028Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-for-crate-rpass.rs:72:9
2019-10-09T17:34:50.6668089Z    |
2019-10-09T17:34:50.6668154Z LL |     reg.register_late_lint_pass(box PassGreyGreen);
2019-10-09T17:34:50.6668207Z    |         ^^^^^^^^^^^^^^^^^^^^^^^ help: there is a method with a similar name: `register_llvm_pass`
2019-10-09T17:34:50.6668849Z error: aborting due to 6 previous errors
2019-10-09T17:34:50.6668909Z 
2019-10-09T17:34:50.6668955Z Some errors have detailed explanations: E0407, E0599.
2019-10-09T17:34:50.6669470Z For more information about an error, try `rustc --explain E0407`.
2019-10-09T17:34:50.6669470Z For more information about an error, try `rustc --explain E0407`.
2019-10-09T17:34:50.6669506Z 
2019-10-09T17:34:50.6669980Z ------------------------------------------
2019-10-09T17:34:50.6670026Z 
2019-10-09T17:34:50.6670052Z 
2019-10-09T17:34:50.6670328Z ---- [ui] ui-fulldeps/issue-40001.rs stdout ----
2019-10-09T17:34:50.6670386Z 
2019-10-09T17:34:50.6671033Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs" failed to compile: 
2019-10-09T17:34:50.6671118Z status: exit code: 1
2019-10-09T17:34:50.6671936Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-40001/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/issue-40001/auxiliary"
2019-10-09T17:34:50.6672584Z ------------------------------------------
2019-10-09T17:34:50.6672616Z 
2019-10-09T17:34:50.6672817Z ------------------------------------------
2019-10-09T17:34:50.6672859Z stderr:
2019-10-09T17:34:50.6672859Z stderr:
2019-10-09T17:34:50.6673077Z ------------------------------------------
2019-10-09T17:34:50.6673124Z warning: unused import: `syntax::ext::base::*`
2019-10-09T17:34:50.6673354Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:11:5
2019-10-09T17:34:50.6673457Z LL | use syntax::ext::base::*;
2019-10-09T17:34:50.6673498Z    |     ^^^^^^^^^^^^^^^^^^^^
2019-10-09T17:34:50.6673554Z    |
2019-10-09T17:34:50.6673595Z    = note: `#[warn(unused_imports)]` on by default
2019-10-09T17:34:50.6673595Z    = note: `#[warn(unused_imports)]` on by default
2019-10-09T17:34:50.6673623Z 
2019-10-09T17:34:50.6673663Z warning: unused import: `rustc::hir::map as hir_map`
2019-10-09T17:34:50.6673923Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:17:5
2019-10-09T17:34:50.6673968Z    |
2019-10-09T17:34:50.6674007Z LL | use rustc::hir::map as hir_map;
2019-10-09T17:34:50.6674096Z 
2019-10-09T17:34:50.6674134Z warning: unused import: `rustc::ty`
2019-10-09T17:34:50.6674134Z warning: unused import: `rustc::ty`
2019-10-09T17:34:50.6674370Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:20:5
2019-10-09T17:34:50.6674471Z LL | use rustc::ty;
2019-10-09T17:34:50.6674510Z    |     ^^^^^^^^^
2019-10-09T17:34:50.6674553Z 
2019-10-09T17:34:50.6674591Z warning: unused import: `ast`
2019-10-09T17:34:50.6674591Z warning: unused import: `ast`
2019-10-09T17:34:50.6674824Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:21:14
2019-10-09T17:34:50.6674870Z    |
2019-10-09T17:34:50.6674925Z LL | use syntax::{ast, source_map};
2019-10-09T17:34:50.6674995Z 
2019-10-09T17:34:50.6674995Z 
2019-10-09T17:34:50.6675357Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T17:34:50.6675607Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:23:1
2019-10-09T17:34:50.6675714Z LL | #[plugin_registrar]
2019-10-09T17:34:50.6675758Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T17:34:50.6675797Z    |
2019-10-09T17:34:50.6675864Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6675864Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6675892Z 
2019-10-09T17:34:50.6676182Z error[E0599]: no method named `register_late_lint_pass` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6676439Z   --> /checkout/src/test/ui-fulldeps/auxiliary/issue-40001-plugin.rs:25:9
2019-10-09T17:34:50.6676485Z    |
2019-10-09T17:34:50.6676527Z LL |     reg.register_late_lint_pass(box MissingWhitelistedAttrPass);
2019-10-09T17:34:50.6676597Z    |         ^^^^^^^^^^^^^^^^^^^^^^^ help: there is a method with a similar name: `register_llvm_pass`
2019-10-09T17:34:50.6676763Z error: aborting due to previous error
2019-10-09T17:34:50.6676793Z 
2019-10-09T17:34:50.6677060Z For more information about this error, try `rustc --explain E0599`.
2019-10-09T17:34:50.6677092Z 
2019-10-09T17:34:50.6677092Z 
2019-10-09T17:34:50.6677290Z ------------------------------------------
2019-10-09T17:34:50.6677318Z 
2019-10-09T17:34:50.6677407Z 
2019-10-09T17:34:50.6677675Z ---- [ui] ui-fulldeps/lint-group-plugin-deny-cmdline.rs stdout ----
2019-10-09T17:34:50.6677706Z 
2019-10-09T17:34:50.6677961Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs" failed to compile: 
2019-10-09T17:34:50.6678027Z status: exit code: 1
2019-10-09T17:34:50.6679395Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-group-plugin-deny-cmdline/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-group-plugin-deny-cmdline/auxiliary"
2019-10-09T17:34:50.6679765Z ------------------------------------------
2019-10-09T17:34:50.6679799Z 
2019-10-09T17:34:50.6680038Z ------------------------------------------
2019-10-09T17:34:50.6680086Z stderr:
2019-10-09T17:34:50.6680086Z stderr:
2019-10-09T17:34:50.6680302Z ------------------------------------------
2019-10-09T17:34:50.6680371Z warning: unused import: `LateLintPassObject`
2019-10-09T17:34:50.6680631Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:12:69
2019-10-09T17:34:50.6680684Z    |
2019-10-09T17:34:50.6680756Z LL | use rustc::lint::{LateContext, LintContext, LintPass, LateLintPass, LateLintPassObject, LintArray};
2019-10-09T17:34:50.6680872Z    |
2019-10-09T17:34:50.6680936Z    = note: `#[warn(unused_imports)]` on by default
2019-10-09T17:34:50.6680967Z 
2019-10-09T17:34:50.6680967Z 
2019-10-09T17:34:50.6681333Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T17:34:50.6681627Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:31:1
2019-10-09T17:34:50.6681718Z LL | #[plugin_registrar]
2019-10-09T17:34:50.6681785Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T17:34:50.6681829Z    |
2019-10-09T17:34:50.6681874Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6681874Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6681905Z 
2019-10-09T17:34:50.6682397Z error[E0599]: no method named `register_late_lint_pass` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6682928Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:33:9
2019-10-09T17:34:50.6682990Z    |
2019-10-09T17:34:50.6683055Z LL |     reg.register_late_lint_pass(box Pass);
2019-10-09T17:34:50.6683105Z    |         ^^^^^^^^^^^^^^^^^^^^^^^ help: there is a method with a similar name: `register_llvm_pass`
2019-10-09T17:34:50.6683138Z 
2019-10-09T17:34:50.6683683Z error[E0599]: no method named `register_lint_group` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6683971Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:34:9
2019-10-09T17:34:50.6684017Z    |
2019-10-09T17:34:50.6684077Z LL |     reg.register_lint_group("lint_me", None, vec![TEST_LINT, PLEASE_LINT]);
2019-10-09T17:34:50.6684331Z    |         ^^^^^^^^^^^^^^^^^^^ method not found in `&mut rustc_driver::rustc_plugin_impl::Registry<'_>`
2019-10-09T17:34:50.6684406Z error: aborting due to 2 previous errors
2019-10-09T17:34:50.6684569Z 
2019-10-09T17:34:50.6684817Z For more information about this error, try `rustc --explain E0599`.
2019-10-09T17:34:50.6684848Z 
2019-10-09T17:34:50.6684848Z 
2019-10-09T17:34:50.6685041Z ------------------------------------------
2019-10-09T17:34:50.6685090Z 
2019-10-09T17:34:50.6685113Z 
2019-10-09T17:34:50.6685320Z ---- [ui] ui-fulldeps/lint-group-plugin.rs stdout ----
2019-10-09T17:34:50.6685350Z 
2019-10-09T17:34:50.6685691Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs" failed to compile: 
2019-10-09T17:34:50.6685751Z status: exit code: 1
2019-10-09T17:34:50.6686466Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-group-plugin/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-group-plugin/auxiliary"
2019-10-09T17:34:50.6686839Z ------------------------------------------
2019-10-09T17:34:50.6686888Z 
2019-10-09T17:34:50.6687095Z ------------------------------------------
2019-10-09T17:34:50.6687137Z stderr:
2019-10-09T17:34:50.6687137Z stderr:
2019-10-09T17:34:50.6687349Z ------------------------------------------
2019-10-09T17:34:50.6687396Z warning: unused import: `LateLintPassObject`
2019-10-09T17:34:50.6687629Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:12:69
2019-10-09T17:34:50.6687692Z    |
2019-10-09T17:34:50.6687740Z LL | use rustc::lint::{LateContext, LintContext, LintPass, LateLintPass, LateLintPassObject, LintArray};
2019-10-09T17:34:50.6687864Z    |
2019-10-09T17:34:50.6687905Z    = note: `#[warn(unused_imports)]` on by default
2019-10-09T17:34:50.6687933Z 
2019-10-09T17:34:50.6687933Z 
2019-10-09T17:34:50.6688839Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T17:34:50.6689171Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:31:1
2019-10-09T17:34:50.6689292Z LL | #[plugin_registrar]
2019-10-09T17:34:50.6689339Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T17:34:50.6689383Z    |
2019-10-09T17:34:50.6689446Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6689446Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6689478Z 
2019-10-09T17:34:50.6689798Z error[E0599]: no method named `register_late_lint_pass` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6690060Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:33:9
2019-10-09T17:34:50.6690132Z    |
2019-10-09T17:34:50.6690185Z LL |     reg.register_late_lint_pass(box Pass);
2019-10-09T17:34:50.6690240Z    |         ^^^^^^^^^^^^^^^^^^^^^^^ help: there is a method with a similar name: `register_llvm_pass`
2019-10-09T17:34:50.6690294Z 
2019-10-09T17:34:50.6690608Z error[E0599]: no method named `register_lint_group` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6690880Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-group-plugin-test.rs:34:9
2019-10-09T17:34:50.6690948Z    |
2019-10-09T17:34:50.6690997Z LL |     reg.register_lint_group("lint_me", None, vec![TEST_LINT, PLEASE_LINT]);
2019-10-09T17:34:50.6691281Z    |         ^^^^^^^^^^^^^^^^^^^ method not found in `&mut rustc_driver::rustc_plugin_impl::Registry<'_>`
2019-10-09T17:34:50.6691381Z error: aborting due to 2 previous errors
2019-10-09T17:34:50.6691411Z 
2019-10-09T17:34:50.6691654Z For more information about this error, try `rustc --explain E0599`.
2019-10-09T17:34:50.6691823Z 
2019-10-09T17:34:50.6691823Z 
2019-10-09T17:34:50.6692251Z ------------------------------------------
2019-10-09T17:34:50.6692279Z 
2019-10-09T17:34:50.6692301Z 
2019-10-09T17:34:50.6692506Z ---- [ui] ui-fulldeps/lint-plugin-cmdline-allow.rs stdout ----
2019-10-09T17:34:50.6692554Z 
2019-10-09T17:34:50.6692795Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" failed to compile: 
2019-10-09T17:34:50.6692923Z status: exit code: 1
2019-10-09T17:34:50.6693644Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-cmdline-allow/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-cmdline-allow/auxiliary"
2019-10-09T17:34:50.6693951Z ------------------------------------------
2019-10-09T17:34:50.6693981Z 
2019-10-09T17:34:50.6694171Z ------------------------------------------
2019-10-09T17:34:50.6694302Z stderr:
2019-10-09T17:34:50.6694302Z stderr:
2019-10-09T17:34:50.6694503Z ------------------------------------------
2019-10-09T17:34:50.6694994Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T17:34:50.6695472Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:29:1
2019-10-09T17:34:50.6695815Z LL | #[plugin_registrar]
2019-10-09T17:34:50.6696067Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T17:34:50.6696271Z    |
2019-10-09T17:34:50.6696310Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6696310Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6696381Z 
2019-10-09T17:34:50.6696663Z error[E0599]: no method named `register_early_lint_pass` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6696901Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:31:9
2019-10-09T17:34:50.6696994Z    |
2019-10-09T17:34:50.6697036Z LL |     reg.register_early_lint_pass(box Pass as EarlyLintPassObject);
2019-10-09T17:34:50.6697094Z    |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: there is a method with a similar name: `register_llvm_pass`
2019-10-09T17:34:50.6697211Z error: aborting due to previous error
2019-10-09T17:34:50.6697237Z 
2019-10-09T17:34:50.6697455Z For more information about this error, try `rustc --explain E0599`.
2019-10-09T17:34:50.6697485Z 
2019-10-09T17:34:50.6697485Z 
2019-10-09T17:34:50.6697725Z ------------------------------------------
2019-10-09T17:34:50.6697754Z 
2019-10-09T17:34:50.6697776Z 
2019-10-09T17:34:50.6697979Z ---- [ui] ui-fulldeps/lint-plugin-cmdline-load.rs stdout ----
2019-10-09T17:34:50.6698015Z 
2019-10-09T17:34:50.6751415Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" failed to compile: 
2019-10-09T17:34:50.6751509Z status: exit code: 1
2019-10-09T17:34:50.6752875Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-cmdline-load/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-cmdline-load/auxiliary"
2019-10-09T17:34:50.6753201Z ------------------------------------------
2019-10-09T17:34:50.6753235Z 
2019-10-09T17:34:50.6753436Z ------------------------------------------
2019-10-09T17:34:50.6753671Z stderr:
2019-10-09T17:34:50.6753671Z stderr:
2019-10-09T17:34:50.6753912Z ------------------------------------------
2019-10-09T17:34:50.6754445Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T17:34:50.6754726Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:29:1
2019-10-09T17:34:50.6754824Z LL | #[plugin_registrar]
2019-10-09T17:34:50.6754999Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T17:34:50.6755055Z    |
2019-10-09T17:34:50.6755101Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6755101Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6755131Z 
2019-10-09T17:34:50.6755491Z error[E0599]: no method named `register_early_lint_pass` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6766017Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:31:9
2019-10-09T17:34:50.6766103Z    |
2019-10-09T17:34:50.6766180Z LL |     reg.register_early_lint_pass(box Pass as EarlyLintPassObject);
2019-10-09T17:34:50.6766251Z    |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: there is a method with a similar name: `register_llvm_pass`
2019-10-09T17:34:50.6766342Z error: aborting due to previous error
2019-10-09T17:34:50.6766370Z 
2019-10-09T17:34:50.6767017Z For more information about this error, try `rustc --explain E0599`.
2019-10-09T17:34:50.6767054Z 
2019-10-09T17:34:50.6767054Z 
2019-10-09T17:34:50.6767293Z ------------------------------------------
2019-10-09T17:34:50.6767324Z 
2019-10-09T17:34:50.6767349Z 
2019-10-09T17:34:50.6767565Z ---- [ui] ui-fulldeps/lint-plugin-deny-attr.rs stdout ----
2019-10-09T17:34:50.6767595Z 
2019-10-09T17:34:50.6767853Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" failed to compile: 
2019-10-09T17:34:50.6767905Z status: exit code: 1
2019-10-09T17:34:50.6769199Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-deny-attr/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-deny-attr/auxiliary"
2019-10-09T17:34:50.6769573Z ------------------------------------------
2019-10-09T17:34:50.6769609Z 
2019-10-09T17:34:50.6769830Z ------------------------------------------
2019-10-09T17:34:50.6769878Z stderr:
2019-10-09T17:34:50.6769878Z stderr:
2019-10-09T17:34:50.6770100Z ------------------------------------------
2019-10-09T17:34:50.6770480Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T17:34:50.6770759Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:29:1
2019-10-09T17:34:50.6770868Z LL | #[plugin_registrar]
2019-10-09T17:34:50.6770922Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T17:34:50.6770968Z    |
2019-10-09T17:34:50.6771015Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6771015Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6771046Z 
2019-10-09T17:34:50.6771382Z error[E0599]: no method named `register_early_lint_pass` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6771648Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:31:9
2019-10-09T17:34:50.6771699Z    |
2019-10-09T17:34:50.6771755Z LL |     reg.register_early_lint_pass(box Pass as EarlyLintPassObject);
2019-10-09T17:34:50.6771812Z    |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: there is a method with a similar name: `register_llvm_pass`
2019-10-09T17:34:50.6771895Z error: aborting due to previous error
2019-10-09T17:34:50.6771925Z 
2019-10-09T17:34:50.6772416Z For more information about this error, try `rustc --explain E0599`.
2019-10-09T17:34:50.6772452Z 
2019-10-09T17:34:50.6772452Z 
2019-10-09T17:34:50.6772687Z ------------------------------------------
2019-10-09T17:34:50.6772720Z 
2019-10-09T17:34:50.6772746Z 
2019-10-09T17:34:50.6772982Z ---- [ui] ui-fulldeps/lint-plugin-deny-cmdline.rs stdout ----
2019-10-09T17:34:50.6773016Z 
2019-10-09T17:34:50.6773402Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" failed to compile: 
2019-10-09T17:34:50.6773469Z status: exit code: 1
2019-10-09T17:34:50.6774610Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-deny-cmdline/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-deny-cmdline/auxiliary"
2019-10-09T17:34:50.6774906Z ------------------------------------------
2019-10-09T17:34:50.6774937Z 
2019-10-09T17:34:50.6775130Z ------------------------------------------
2019-10-09T17:34:50.6775171Z stderr:
2019-10-09T17:34:50.6775171Z stderr:
2019-10-09T17:34:50.6775371Z ------------------------------------------
2019-10-09T17:34:50.6775676Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T17:34:50.6775920Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:29:1
2019-10-09T17:34:50.6776002Z LL | #[plugin_registrar]
2019-10-09T17:34:50.6776061Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T17:34:50.6776099Z    |
2019-10-09T17:34:50.6776139Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6776139Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6776172Z 
2019-10-09T17:34:50.6776471Z error[E0599]: no method named `register_early_lint_pass` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6776700Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:31:9
2019-10-09T17:34:50.6776743Z    |
2019-10-09T17:34:50.6776803Z LL |     reg.register_early_lint_pass(box Pass as EarlyLintPassObject);
2019-10-09T17:34:50.6776859Z    |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: there is a method with a similar name: `register_llvm_pass`
2019-10-09T17:34:50.6776945Z error: aborting due to previous error
2019-10-09T17:34:50.6776971Z 
2019-10-09T17:34:50.6777188Z For more information about this error, try `rustc --explain E0599`.
2019-10-09T17:34:50.6777218Z 
2019-10-09T17:34:50.6777218Z 
2019-10-09T17:34:50.6777420Z ------------------------------------------
2019-10-09T17:34:50.6777447Z 
2019-10-09T17:34:50.6777469Z 
2019-10-09T17:34:50.6777672Z ---- [ui] ui-fulldeps/lint-plugin-forbid-attrs.rs stdout ----
2019-10-09T17:34:50.6777708Z 
2019-10-09T17:34:50.6777965Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" failed to compile: 
2019-10-09T17:34:50.6778012Z status: exit code: 1
2019-10-09T17:34:50.6779470Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-forbid-attrs/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-forbid-attrs/auxiliary"
2019-10-09T17:34:50.6779834Z ------------------------------------------
2019-10-09T17:34:50.6779870Z 
2019-10-09T17:34:50.6780249Z ------------------------------------------
2019-10-09T17:34:50.6780298Z stderr:
2019-10-09T17:34:50.6780298Z stderr:
2019-10-09T17:34:50.6780534Z ------------------------------------------
2019-10-09T17:34:50.6780888Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T17:34:50.6781173Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:29:1
2019-10-09T17:34:50.6781369Z LL | #[plugin_registrar]
2019-10-09T17:34:50.6781436Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T17:34:50.6781482Z    |
2019-10-09T17:34:50.6781529Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6781529Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6781560Z 
2019-10-09T17:34:50.6781926Z error[E0599]: no method named `register_early_lint_pass` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6782334Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:31:9
2019-10-09T17:34:50.6782551Z    |
2019-10-09T17:34:50.6782612Z LL |     reg.register_early_lint_pass(box Pass as EarlyLintPassObject);
2019-10-09T17:34:50.6782662Z    |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: there is a method with a similar name: `register_llvm_pass`
2019-10-09T17:34:50.6782744Z error: aborting due to previous error
2019-10-09T17:34:50.6782770Z 
2019-10-09T17:34:50.6782995Z For more information about this error, try `rustc --explain E0599`.
2019-10-09T17:34:50.6783025Z 
2019-10-09T17:34:50.6783025Z 
2019-10-09T17:34:50.6783228Z ------------------------------------------
2019-10-09T17:34:50.6783256Z 
2019-10-09T17:34:50.6783279Z 
2019-10-09T17:34:50.6783485Z ---- [ui] ui-fulldeps/lint-plugin-forbid-cmdline.rs stdout ----
2019-10-09T17:34:50.6783514Z 
2019-10-09T17:34:50.6783770Z error: auxiliary build of "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" failed to compile: 
2019-10-09T17:34:50.6783816Z status: exit code: 1
2019-10-09T17:34:50.6784518Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-forbid-cmdline/auxiliary" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--crate-type" "dylib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps/lint-plugin-forbid-cmdline/auxiliary"
2019-10-09T17:34:50.6784825Z ------------------------------------------
2019-10-09T17:34:50.6784855Z 
2019-10-09T17:34:50.6785045Z ------------------------------------------
2019-10-09T17:34:50.6785085Z stderr:
2019-10-09T17:34:50.6785085Z stderr:
2019-10-09T17:34:50.6785288Z ------------------------------------------
2019-10-09T17:34:50.6785585Z warning: use of deprecated attribute `plugin_registrar`: compiler plugins are deprecated. See ***/issues/29597
2019-10-09T17:34:50.6785842Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:29:1
2019-10-09T17:34:50.6785925Z LL | #[plugin_registrar]
2019-10-09T17:34:50.6785982Z    | ^^^^^^^^^^^^^^^^^^^ help: remove this attribute
2019-10-09T17:34:50.6786021Z    |
2019-10-09T17:34:50.6786061Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6786061Z    = note: `#[warn(deprecated)]` on by default
2019-10-09T17:34:50.6786087Z 
2019-10-09T17:34:50.6786385Z error[E0599]: no method named `register_early_lint_pass` found for type `&mut rustc_driver::rustc_plugin_impl::Registry<'_>` in the current scope
2019-10-09T17:34:50.6786615Z   --> /checkout/src/test/ui-fulldeps/auxiliary/lint-plugin-test.rs:31:9
2019-10-09T17:34:50.6786659Z    |
2019-10-09T17:34:50.6786716Z LL |     reg.register_early_lint_pass(box Pass as EarlyLintPassObject);
2019-10-09T17:34:50.6786765Z    |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: there is a method with a similar name: `register_llvm_pass`
2019-10-09T17:34:50.6786847Z error: aborting due to previous error
2019-10-09T17:34:50.6786989Z 
2019-10-09T17:34:50.6787228Z For more information about this error, try `rustc --explain E0599`.
2019-10-09T17:34:50.6787258Z 
2019-10-09T17:34:50.6787258Z 
---
2019-10-09T17:34:50.6817146Z main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:537:22
2019-10-09T17:34:50.6817288Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
2019-10-09T17:34:50.6817325Z 
2019-10-09T17:34:50.6817377Z 
2019-10-09T17:34:50.6820465Z 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-fulldeps" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui-fulldeps" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2019-10-09T17:34:50.6821010Z 
2019-10-09T17:34:50.6821043Z 
2019-10-09T17:34:50.6821180Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-10-09T17:34:50.6821263Z Build completed unsuccessfully in 1:12:27
2019-10-09T17:34:50.6821263Z Build completed unsuccessfully in 1:12:27
2019-10-09T17:34:50.6821313Z == clock drift check ==
2019-10-09T17:34:50.6821360Z   local time: Wed Oct  9 17:34:50 UTC 2019
2019-10-09T17:34:50.7663062Z   network time: Wed, 09 Oct 2019 17:34:50 GMT
2019-10-09T17:34:50.7667973Z == end clock drift check ==
2019-10-09T17:34:51.4358486Z ##[error]Bash exited with code '1'.
2019-10-09T17:34:51.4412425Z ##[section]Starting: Checkout
2019-10-09T17:34:51.4414362Z ==============================================================================
2019-10-09T17:34:51.4414420Z Task         : Get sources
2019-10-09T17:34:51.4414486Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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)

@Mark-Simulacrum

This comment has been minimized.

Copy link
Member Author

Mark-Simulacrum commented Oct 11, 2019

Okay I've added one more commit that makes clippy changes easier and filed a PR on clippy -- rust-lang/rust-clippy#4650 -- that makes the relevant changes there as well.

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Oct 11, 2019

The job mingw-check of your PR failed (pretty log, 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-10-11T01:56:46.6534254Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-10-11T01:56:46.6637419Z ##[command]git config gc.auto 0
2019-10-11T01:56:46.6719712Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-10-11T01:56:46.6780216Z ##[command]git config --get-all http.proxy
2019-10-11T01:56:46.6946688Z ##[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/65193/merge:refs/remotes/pull/65193/merge
---
2019-10-11T02:03:59.7801013Z     Checking syntax_pos v0.0.0 (/checkout/src/libsyntax_pos)
2019-10-11T02:04:01.2379528Z     Checking rustc_errors v0.0.0 (/checkout/src/librustc_errors)
2019-10-11T02:04:02.4847816Z     Checking fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
2019-10-11T02:04:15.0982589Z     Checking syntax_ext v0.0.0 (/checkout/src/libsyntax_ext)
2019-10-11T02:04:28.2513359Z error[E0277]: `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be sent between threads safely
2019-10-11T02:04:28.2516118Z      |
2019-10-11T02:04:28.2516118Z      |
2019-10-11T02:04:28.2516665Z 1429 |     join(|| {
2019-10-11T02:04:28.2517422Z      |     ^^^^ `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be sent between threads safely
2019-10-11T02:04:28.2517916Z      | 
2019-10-11T02:04:28.2518530Z     ::: /cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.3.0/src/join/mod.rs:97:25
2019-10-11T02:04:28.2519013Z      |
2019-10-11T02:04:28.2519557Z 97   |     A: FnOnce() -> RA + Send,
2019-10-11T02:04:28.2520182Z      |                         ---- required by this bound in `rustc_rayon_core::join::join`
2019-10-11T02:04:28.2520892Z      |
2019-10-11T02:04:28.2521705Z      = help: the trait `std::marker::Send` is not implemented for `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)`
2019-10-11T02:04:28.2522841Z      = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:28.2523915Z      = note: required because it appears within the type `std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:28.2524746Z      = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:28.2525517Z      = note: required because it appears within the type `alloc::raw_vec::RawVec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:28.2526267Z      = note: required because it appears within the type `std::vec::Vec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:28.2526891Z      = note: required because it appears within the type `lint::context::LintStore`
2019-10-11T02:04:28.2527528Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Arc<lint::context::LintStore>`
2019-10-11T02:04:28.2528106Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:28.2528710Z      = note: required because it appears within the type `&'tcx ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:28.2529271Z      = note: required because it appears within the type `ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:28.2529909Z      = note: required because of the requirements on the impl of `std::marker::Send` for `&ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:28.2530602Z      = note: required because it appears within the type `[closure@src/librustc/lint/context.rs:1429:10: 1434:6 tcx:&ty::context::TyCtxt<'tcx>, builtin_lints:impl FnOnce() -> T + Send]`
2019-10-11T02:04:28.2530817Z 
2019-10-11T02:04:28.2553820Z error[E0277]: `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be sent between threads safely
2019-10-11T02:04:28.2555378Z      |
2019-10-11T02:04:28.2555378Z      |
2019-10-11T02:04:28.2555928Z 1429 |     join(|| {
2019-10-11T02:04:28.2556698Z      |     ^^^^ `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be sent between threads safely
2019-10-11T02:04:28.2557368Z      | 
2019-10-11T02:04:28.2558077Z     ::: /cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.3.0/src/join/mod.rs:97:25
2019-10-11T02:04:28.2558576Z      |
2019-10-11T02:04:28.2559105Z 97   |     A: FnOnce() -> RA + Send,
2019-10-11T02:04:28.2559746Z      |                         ---- required by this bound in `rustc_rayon_core::join::join`
2019-10-11T02:04:28.2560498Z      |
2019-10-11T02:04:28.2561863Z      = help: the trait `std::marker::Send` is not implemented for `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)`
2019-10-11T02:04:28.2563158Z      = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:28.2564618Z      = note: required because it appears within the type `std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:28.2565252Z      = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:28.2565835Z      = note: required because it appears within the type `alloc::raw_vec::RawVec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:28.2566365Z      = note: required because it appears within the type `std::vec::Vec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:28.2566774Z      = note: required because it appears within the type `lint::context::LintStore`
2019-10-11T02:04:28.2567178Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Arc<lint::context::LintStore>`
2019-10-11T02:04:28.2567564Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:28.2567929Z      = note: required because it appears within the type `&'tcx ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:28.2568283Z      = note: required because it appears within the type `ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:28.2568683Z      = note: required because of the requirements on the impl of `std::marker::Send` for `&ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:28.2569169Z      = note: required because it appears within the type `[closure@src/librustc/lint/context.rs:1429:10: 1434:6 tcx:&ty::context::TyCtxt<'tcx>, builtin_lints:impl FnOnce() -> T + Send]`
2019-10-11T02:04:28.2569240Z 
2019-10-11T02:04:28.2593189Z error[E0277]: `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be shared between threads safely
2019-10-11T02:04:28.2593888Z      |
2019-10-11T02:04:28.2593888Z      |
2019-10-11T02:04:28.2594182Z 1429 |     join(|| {
2019-10-11T02:04:28.2595091Z      |     ^^^^ `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be shared between threads safely
2019-10-11T02:04:28.2595659Z      | 
2019-10-11T02:04:28.2596020Z     ::: /cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.3.0/src/join/mod.rs:97:25
2019-10-11T02:04:28.2596290Z      |
2019-10-11T02:04:28.2596608Z 97   |     A: FnOnce() -> RA + Send,
2019-10-11T02:04:28.2597020Z      |                         ---- required by this bound in `rustc_rayon_core::join::join`
2019-10-11T02:04:28.2597290Z      |
2019-10-11T02:04:28.2597754Z      = help: the trait `std::marker::Sync` is not implemented for `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)`
2019-10-11T02:04:28.2598283Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:28.2598803Z      = note: required because it appears within the type `std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:28.2599334Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:28.2599890Z      = note: required because it appears within the type `alloc::raw_vec::RawVec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:28.2600415Z      = note: required because it appears within the type `std::vec::Vec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:28.2600792Z      = note: required because it appears within the type `lint::context::LintStore`
2019-10-11T02:04:28.2601193Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Arc<lint::context::LintStore>`
2019-10-11T02:04:28.2601574Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:28.2601947Z      = note: required because it appears within the type `&'tcx ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:28.2602426Z      = note: required because it appears within the type `ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:28.2602867Z      = note: required because of the requirements on the impl of `std::marker::Send` for `&ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:28.2603338Z      = note: required because it appears within the type `[closure@src/librustc/lint/context.rs:1429:10: 1434:6 tcx:&ty::context::TyCtxt<'tcx>, builtin_lints:impl FnOnce() -> T + Send]`
2019-10-11T02:04:28.2603425Z 
2019-10-11T02:04:28.2610747Z error[E0277]: `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be shared between threads safely
2019-10-11T02:04:28.2611603Z      |
2019-10-11T02:04:28.2611603Z      |
2019-10-11T02:04:28.2612229Z 1429 |     join(|| {
2019-10-11T02:04:28.2612838Z      |     ^^^^ `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be shared between threads safely
2019-10-11T02:04:28.2613140Z      | 
2019-10-11T02:04:28.2613504Z     ::: /cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.3.0/src/join/mod.rs:97:25
2019-10-11T02:04:28.2613774Z      |
2019-10-11T02:04:28.2614107Z 97   |     A: FnOnce() -> RA + Send,
2019-10-11T02:04:28.2614514Z      |                         ---- required by this bound in `rustc_rayon_core::join::join`
2019-10-11T02:04:28.2614797Z      |
2019-10-11T02:04:28.2615286Z      = help: the trait `std::marker::Sync` is not implemented for `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)`
2019-10-11T02:04:28.2615853Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:28.2616385Z      = note: required because it appears within the type `std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:28.2616976Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:28.2617520Z      = note: required because it appears within the type `alloc::raw_vec::RawVec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:28.2618083Z      = note: required because it appears within the type `std::vec::Vec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:28.2618624Z      = note: required because it appears within the type `lint::context::LintStore`
2019-10-11T02:04:28.2619090Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Arc<lint::context::LintStore>`
2019-10-11T02:04:28.2619454Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:28.2619838Z      = note: required because it appears within the type `&'tcx ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:28.2620335Z      = note: required because it appears within the type `ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:28.2620720Z      = note: required because of the requirements on the impl of `std::marker::Send` for `&ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:28.2621221Z      = note: required because it appears within the type `[closure@src/librustc/lint/context.rs:1429:10: 1434:6 tcx:&ty::context::TyCtxt<'tcx>, builtin_lints:impl FnOnce() -> T + Send]`
2019-10-11T02:04:28.2621275Z 
2019-10-11T02:04:33.3833054Z error[E0277]: `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be sent between threads safely
2019-10-11T02:04:33.3850222Z      |
2019-10-11T02:04:33.3850222Z      |
2019-10-11T02:04:33.3851391Z 2786 |         par_iter(&self.hir().krate().body_ids).for_each(|&body_id| {
2019-10-11T02:04:33.3855030Z      |                                                ^^^^^^^^ `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be sent between threads safely
2019-10-11T02:04:33.3856028Z      |
2019-10-11T02:04:33.3859367Z      = help: the trait `std::marker::Send` is not implemented for `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)`
2019-10-11T02:04:33.3860383Z      = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:33.3861322Z      = note: required because it appears within the type `std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:33.3862279Z      = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:33.3863194Z      = note: required because it appears within the type `alloc::raw_vec::RawVec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:33.3864716Z      = note: required because it appears within the type `std::vec::Vec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:33.3865591Z      = note: required because it appears within the type `lint::context::LintStore`
2019-10-11T02:04:33.3866380Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Arc<lint::context::LintStore>`
2019-10-11T02:04:33.3867138Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:33.3868787Z      = note: required because it appears within the type `&'tcx ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:33.3869618Z      = note: required because it appears within the type `ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:33.3870222Z      = note: required because it appears within the type `&ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:33.3870906Z      = note: required because it appears within the type `[closure@src/librustc/ty/mod.rs:2786:57: 2788:10 f:&F, self:&ty::context::TyCtxt<'tcx>]`
2019-10-11T02:04:33.3871118Z 
2019-10-11T02:04:33.3871877Z error[E0277]: `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be sent between threads safely
2019-10-11T02:04:33.3872921Z      |
2019-10-11T02:04:33.3872921Z      |
2019-10-11T02:04:33.3874020Z 2786 |         par_iter(&self.hir().krate().body_ids).for_each(|&body_id| {
2019-10-11T02:04:33.3875303Z      |                                                ^^^^^^^^ `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be sent between threads safely
2019-10-11T02:04:33.3875870Z      |
2019-10-11T02:04:33.3876582Z      = help: the trait `std::marker::Send` is not implemented for `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)`
2019-10-11T02:04:33.3877388Z      = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:33.3878771Z      = note: required because it appears within the type `std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:33.3879696Z      = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:33.3880500Z      = note: required because it appears within the type `alloc::raw_vec::RawVec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:33.3881436Z      = note: required because it appears within the type `std::vec::Vec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:33.3890275Z      = note: required because it appears within the type `lint::context::LintStore`
2019-10-11T02:04:33.3894326Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Arc<lint::context::LintStore>`
2019-10-11T02:04:33.3895295Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:33.3895899Z      = note: required because it appears within the type `&'tcx ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:33.3896514Z      = note: required because it appears within the type `ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:33.3897093Z      = note: required because it appears within the type `&ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:33.3897749Z      = note: required because it appears within the type `[closure@src/librustc/ty/mod.rs:2786:57: 2788:10 f:&F, self:&ty::context::TyCtxt<'tcx>]`
2019-10-11T02:04:33.3897965Z 
2019-10-11T02:04:33.3898676Z error[E0277]: `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be shared between threads safely
2019-10-11T02:04:33.3899711Z      |
2019-10-11T02:04:33.3899711Z      |
2019-10-11T02:04:33.3900284Z 2786 |         par_iter(&self.hir().krate().body_ids).for_each(|&body_id| {
2019-10-11T02:04:33.3901086Z      |                                                ^^^^^^^^ `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be shared between threads safely
2019-10-11T02:04:33.3901593Z      |
2019-10-11T02:04:33.3902277Z      = help: the trait `std::marker::Sync` is not implemented for `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)`
2019-10-11T02:04:33.3903101Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:33.3904214Z      = note: required because it appears within the type `std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:33.3905048Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:33.3905843Z      = note: required because it appears within the type `alloc::raw_vec::RawVec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:33.3906784Z      = note: required because it appears within the type `std::vec::Vec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:33.3907465Z      = note: required because it appears within the type `lint::context::LintStore`
2019-10-11T02:04:33.3909727Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Arc<lint::context::LintStore>`
2019-10-11T02:04:33.3910360Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:33.3918736Z      = note: required because it appears within the type `&'tcx ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:33.3919575Z      = note: required because it appears within the type `ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:33.3920185Z      = note: required because it appears within the type `&ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:33.3920855Z      = note: required because it appears within the type `[closure@src/librustc/ty/mod.rs:2786:57: 2788:10 f:&F, self:&ty::context::TyCtxt<'tcx>]`
2019-10-11T02:04:33.3921068Z 
2019-10-11T02:04:33.3921693Z error[E0277]: `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be shared between threads safely
2019-10-11T02:04:33.3922712Z      |
2019-10-11T02:04:33.3922712Z      |
2019-10-11T02:04:33.3923579Z 2786 |         par_iter(&self.hir().krate().body_ids).for_each(|&body_id| {
2019-10-11T02:04:33.3924655Z      |                                                ^^^^^^^^ `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be shared between threads safely
2019-10-11T02:04:33.3925173Z      |
2019-10-11T02:04:33.3925883Z      = help: the trait `std::marker::Sync` is not implemented for `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)`
2019-10-11T02:04:33.3926729Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:33.3927467Z      = note: required because it appears within the type `std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:33.3928265Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:33.3929234Z      = note: required because it appears within the type `alloc::raw_vec::RawVec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:33.3930070Z      = note: required because it appears within the type `std::vec::Vec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:33.3930696Z      = note: required because it appears within the type `lint::context::LintStore`
2019-10-11T02:04:33.3931521Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Arc<lint::context::LintStore>`
2019-10-11T02:04:33.3932133Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:33.3932721Z      = note: required because it appears within the type `&'tcx ty::context::GlobalCtxt<'tcx>`
2019-10-11T02:04:33.3933566Z      = note: required because it appears within the type `ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:33.3934274Z      = note: required because it appears within the type `&ty::context::TyCtxt<'tcx>`
2019-10-11T02:04:33.3934949Z      = note: required because it appears within the type `[closure@src/librustc/ty/mod.rs:2786:57: 2788:10 f:&F, self:&ty::context::TyCtxt<'tcx>]`
2019-10-11T02:04:33.3935186Z 
2019-10-11T02:04:37.7210355Z error[E0277]: `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be sent between threads safely
2019-10-11T02:04:37.7211577Z     --> src/librustc/ty/context.rs:1944:13
2019-10-11T02:04:37.7212333Z      |
2019-10-11T02:04:37.7213049Z 1944 |             sync::assert_sync::<ImplicitCtxt<'_, '_>>();
2019-10-11T02:04:37.7214000Z      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be sent between threads safely
2019-10-11T02:04:37.7215816Z     ::: /checkout/src/librustc_data_structures/sync.rs:427:32
2019-10-11T02:04:37.7216448Z      |
2019-10-11T02:04:37.7216448Z      |
2019-10-11T02:04:37.7217136Z 427  | pub fn assert_sync<T: ?Sized + Sync>() {}
2019-10-11T02:04:37.7217962Z      |                                ---- required by this bound in `rustc_data_structures::sync::assert_sync`
2019-10-11T02:04:37.7218593Z      |
2019-10-11T02:04:37.7219456Z      = help: the trait `std::marker::Send` is not implemented for `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)`
2019-10-11T02:04:37.7220338Z      = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:37.7221490Z      = note: required because it appears within the type `std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:37.7225378Z      = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:37.7225935Z      = note: required because it appears within the type `alloc::raw_vec::RawVec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:37.7226739Z      = note: required because it appears within the type `std::vec::Vec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:37.7227117Z      = note: required because it appears within the type `lint::context::LintStore`
2019-10-11T02:04:37.7227539Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Arc<lint::context::LintStore>`
2019-10-11T02:04:37.7227899Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'_>`
2019-10-11T02:04:37.7228252Z      = note: required because it appears within the type `&ty::context::GlobalCtxt<'_>`
2019-10-11T02:04:37.7228635Z      = note: required because it appears within the type `ty::context::TyCtxt<'_>`
2019-10-11T02:04:37.7229013Z      = note: required because it appears within the type `ty::context::tls::ImplicitCtxt<'_, '_>`
2019-10-11T02:04:37.7229065Z 
2019-10-11T02:04:37.7243238Z error[E0277]: `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be sent between threads safely
2019-10-11T02:04:37.7243604Z     --> src/librustc/ty/context.rs:1944:13
2019-10-11T02:04:37.7243883Z      |
2019-10-11T02:04:37.7244221Z 1944 |             sync::assert_sync::<ImplicitCtxt<'_, '_>>();
2019-10-11T02:04:37.7245150Z      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be sent between threads safely
2019-10-11T02:04:37.7245797Z     ::: /checkout/src/librustc_data_structures/sync.rs:427:32
2019-10-11T02:04:37.7246077Z      |
2019-10-11T02:04:37.7246077Z      |
2019-10-11T02:04:37.7246397Z 427  | pub fn assert_sync<T: ?Sized + Sync>() {}
2019-10-11T02:04:37.7246820Z      |                                ---- required by this bound in `rustc_data_structures::sync::assert_sync`
2019-10-11T02:04:37.7247108Z      |
2019-10-11T02:04:37.7247588Z      = help: the trait `std::marker::Send` is not implemented for `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)`
2019-10-11T02:04:37.7248353Z      = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:37.7248929Z      = note: required because it appears within the type `std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:37.7249672Z      = note: required because of the requirements on the impl of `std::marker::Send` for `std::ptr::Unique<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:37.7250245Z      = note: required because it appears within the type `alloc::raw_vec::RawVec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:37.7250779Z      = note: required because it appears within the type `std::vec::Vec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:37.7251179Z      = note: required because it appears within the type `lint::context::LintStore`
2019-10-11T02:04:37.7251577Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Arc<lint::context::LintStore>`
2019-10-11T02:04:37.7251957Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'_>`
2019-10-11T02:04:37.7252314Z      = note: required because it appears within the type `&ty::context::GlobalCtxt<'_>`
2019-10-11T02:04:37.7252663Z      = note: required because it appears within the type `ty::context::TyCtxt<'_>`
2019-10-11T02:04:37.7253048Z      = note: required because it appears within the type `ty::context::tls::ImplicitCtxt<'_, '_>`
2019-10-11T02:04:37.7253106Z 
2019-10-11T02:04:37.7263526Z error[E0277]: `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be shared between threads safely
2019-10-11T02:04:37.7263904Z     --> src/librustc/ty/context.rs:1944:13
2019-10-11T02:04:37.7264172Z      |
2019-10-11T02:04:37.7264897Z 1944 |             sync::assert_sync::<ImplicitCtxt<'_, '_>>();
2019-10-11T02:04:37.7265555Z      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be shared between threads safely
2019-10-11T02:04:37.7266185Z     ::: /checkout/src/librustc_data_structures/sync.rs:427:32
2019-10-11T02:04:37.7266439Z      |
2019-10-11T02:04:37.7266439Z      |
2019-10-11T02:04:37.7266775Z 427  | pub fn assert_sync<T: ?Sized + Sync>() {}
2019-10-11T02:04:37.7267377Z      |                                ---- required by this bound in `rustc_data_structures::sync::assert_sync`
2019-10-11T02:04:37.7267699Z      |
2019-10-11T02:04:37.7268186Z      = help: the trait `std::marker::Sync` is not implemented for `(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)`
2019-10-11T02:04:37.7268698Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:37.7269373Z      = note: required because it appears within the type `std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:37.7269919Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:37.7270459Z      = note: required because it appears within the type `alloc::raw_vec::RawVec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:37.7270986Z      = note: required because it appears within the type `std::vec::Vec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn lint::EarlyLintPass + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:37.7271364Z      = note: required because it appears within the type `lint::context::LintStore`
2019-10-11T02:04:37.7271782Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Arc<lint::context::LintStore>`
2019-10-11T02:04:37.7272142Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'_>`
2019-10-11T02:04:37.7272494Z      = note: required because it appears within the type `&ty::context::GlobalCtxt<'_>`
2019-10-11T02:04:37.7272876Z      = note: required because it appears within the type `ty::context::TyCtxt<'_>`
2019-10-11T02:04:37.7273243Z      = note: required because it appears within the type `ty::context::tls::ImplicitCtxt<'_, '_>`
2019-10-11T02:04:37.7273298Z 
2019-10-11T02:04:37.7273760Z error[E0277]: `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be shared between threads safely
2019-10-11T02:04:37.7274066Z     --> src/librustc/ty/context.rs:1944:13
2019-10-11T02:04:37.7274309Z      |
2019-10-11T02:04:37.7275387Z 1944 |             sync::assert_sync::<ImplicitCtxt<'_, '_>>();
2019-10-11T02:04:37.7276055Z      |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)` cannot be shared between threads safely
2019-10-11T02:04:37.7276930Z     ::: /checkout/src/librustc_data_structures/sync.rs:427:32
2019-10-11T02:04:37.7277189Z      |
2019-10-11T02:04:37.7277189Z      |
2019-10-11T02:04:37.7277534Z 427  | pub fn assert_sync<T: ?Sized + Sync>() {}
2019-10-11T02:04:37.7277957Z      |                                ---- required by this bound in `rustc_data_structures::sync::assert_sync`
2019-10-11T02:04:37.7278399Z      |
2019-10-11T02:04:37.7278884Z      = help: the trait `std::marker::Sync` is not implemented for `(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)`
2019-10-11T02:04:37.7279454Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:37.7279971Z      = note: required because it appears within the type `std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>`
2019-10-11T02:04:37.7280563Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:37.7281113Z      = note: required because it appears within the type `alloc::raw_vec::RawVec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:37.7281662Z      = note: required because it appears within the type `std::vec::Vec<std::boxed::Box<(dyn std::ops::Fn() -> std::boxed::Box<(dyn for<'a, 'tcx> lint::LateLintPass<'a, 'tcx> + std::marker::Send + std::marker::Sync + 'static)> + 'static)>>`
2019-10-11T02:04:37.7282062Z      = note: required because it appears within the type `lint::context::LintStore`
2019-10-11T02:04:37.7282463Z      = note: required because of the requirements on the impl of `std::marker::Sync` for `std::sync::Arc<lint::context::LintStore>`
2019-10-11T02:04:37.7282828Z      = note: required because it appears within the type `ty::context::GlobalCtxt<'_>`
2019-10-11T02:04:37.7283204Z      = note: required because it appears within the type `&ty::context::GlobalCtxt<'_>`
2019-10-11T02:04:37.7283559Z      = note: required because it appears within the type `ty::context::TyCtxt<'_>`
2019-10-11T02:04:37.7283943Z      = note: required because it appears within the type `ty::context::tls::ImplicitCtxt<'_, '_>`
2019-10-11T02:04:39.0468302Z error: aborting due to 12 previous errors
2019-10-11T02:04:39.0468413Z 
2019-10-11T02:04:39.0468762Z For more information about this error, try `rustc --explain E0277`.
2019-10-11T02:04:39.2081071Z error: could not compile `rustc`.
---
2019-10-11T02:04:39.2180666Z == clock drift check ==
2019-10-11T02:04:39.2200324Z   local time: Fri Oct 11 02:04:39 UTC 2019
2019-10-11T02:04:39.3700028Z   network time: Fri, 11 Oct 2019 02:04:39 GMT
2019-10-11T02:04:39.3703056Z == end clock drift check ==
2019-10-11T02:04:39.7393069Z ##[error]Bash exited with code '1'.
2019-10-11T02:04:39.7569454Z ##[section]Starting: Checkout
2019-10-11T02:04:39.7571377Z ==============================================================================
2019-10-11T02:04:39.7571438Z Task         : Get sources
2019-10-11T02:04:39.7571491Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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)

@Mark-Simulacrum Mark-Simulacrum force-pushed the Mark-Simulacrum:lockless-lintstore branch from cc2cff4 to 87d9769 Oct 11, 2019
Move to using Box<dyn Fn() -> ...> so that we can let plugins register
state.

This also adds a callback that'll get called from plugin registration so
that Clippy and other tools can register lints without using the plugin
API. The plugin API still works, but this new API is more compatible
with drivers other than rustc.
@Mark-Simulacrum Mark-Simulacrum force-pushed the Mark-Simulacrum:lockless-lintstore branch from b3fcae5 to 6be0a70 Oct 17, 2019
@Mark-Simulacrum

This comment has been minimized.

Copy link
Member Author

Mark-Simulacrum commented Oct 19, 2019

@rust-highfive rust-highfive assigned nikomatsakis and unassigned Zoxc Oct 19, 2019
Copy link
Contributor

nikomatsakis left a comment

This new design is really quite nice. Simpler overall, and lock-free to boot. Huzzah!

@@ -125,7 +126,11 @@ declare_lint! {
declare_lint! {
pub PRIVATE_IN_PUBLIC,
Warn,
"detect private items in public interfaces not caught by the old implementation"
"detect private items in public interfaces not caught by the old implementation",

This comment has been minimized.

Copy link
@nikomatsakis

nikomatsakis Oct 22, 2019

Contributor

we should probably update the page on this in the forge -- actually, that content should really move to rustc-guide I expect -- or at least some of it

@@ -155,20 +155,24 @@ impl LintStore {
.collect()
}

pub fn register_early_pass(&mut self, pass: fn() -> EarlyLintPassObject) {
self.early_passes.push(pass);
pub fn register_early_pass(&mut self,

This comment has been minimized.

Copy link
@nikomatsakis

nikomatsakis Oct 22, 2019

Contributor

Nit: put &mut self on next line, to align with rustfmt? (Similarly, the ) { on the next line)

@@ -106,6 +106,7 @@ pub fn abort_on_err<T>(result: Result<T, ErrorReported>, sess: &Session) -> T {
pub trait Callbacks {
/// Called before creating the compiler instance
fn config(&mut self, _config: &mut interface::Config) {}
fn extra_lints(&mut self, _ls: &mut lint::LintStore) {}

This comment has been minimized.

Copy link
@nikomatsakis

nikomatsakis Oct 22, 2019

Contributor

Nit: doc-comment

@@ -26,6 +25,8 @@ pub struct Registry<'a> {
/// from the plugin registrar.
pub sess: &'a Session,

pub lint_store: &'a mut LintStore,

This comment has been minimized.

Copy link
@nikomatsakis

nikomatsakis Oct 22, 2019

Contributor

Nit: doc-comment, I think something simple like this would suffice


The LintStore permits plugins to register new lints.

@@ -80,6 +81,8 @@ pub struct Config {

pub crate_name: Option<String>,
pub lint_caps: FxHashMap<lint::LintId, lint::Level>,

pub register_lints: Option<Box<dyn Fn(&Session, &mut lint::LintStore) + Send + Sync>>,

This comment has been minimized.

Copy link
@nikomatsakis

nikomatsakis Oct 22, 2019

Contributor

It'd be nice to have a comment here. Something like:


Callback that is invoked during lint registration. Use the &mut LintStore value to register new lints with the compiler as needed.

@nikomatsakis

This comment has been minimized.

Copy link
Contributor

nikomatsakis commented Oct 22, 2019

r=me with nits addressed

@Mark-Simulacrum

This comment has been minimized.

Copy link
Member Author

Mark-Simulacrum commented Oct 22, 2019

@bors r=nikomatsakis

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Oct 22, 2019

📌 Commit 4e8d1b2 has been approved by nikomatsakis

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Oct 22, 2019

🌲 The tree is currently closed for pull requests below priority 1000, this pull request will be tested once the tree is reopened

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Oct 22, 2019

Your PR failed (pretty log, 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-10-22T20:54:27.7745903Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-10-22T20:54:27.7957980Z ##[command]git config gc.auto 0
2019-10-22T20:54:27.8047956Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-10-22T20:54:27.8115712Z ##[command]git config --get-all http.proxy
2019-10-22T20:54:27.8260612Z ##[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/65193/merge:refs/remotes/pull/65193/merge

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)

Centril added a commit to Centril/rust that referenced this pull request Oct 23, 2019
… r=nikomatsakis

Lockless LintStore

This removes mutability from the lint store after registration. Each commit stands alone, for the most part, though they don't make sense out of sequence.

The intent here is to move LintStore to a more parallel-friendly architecture, although also just a cleaner one from an implementation perspective. Specifically, this has the following changes:
 * We no longer implicitly register lints when registering lint passes
    * For the most part this means that registration calls now likely want to call something like:
       `lint_store.register_lints(&Pass::get_lints())` as well as `register_*_pass`.
    * In theory this is a simplification as it's much easier for folks to just register lints and then have passes that implement whichever lint however they want, rather than necessarily tying passes to lints.
 * Lint passes still have a list of associated lints, but a followup PR could plausibly change that
   * This list must be known for a given pass type, not instance, i.e., `fn get_lints()` is the signature instead of `fn get_lints(&self)` as before.
 * We do not store pass objects, instead storing constructor functions. This means we always get new passes when running lints (this happens approximately once though for a given compiler session, so no behavior change is expected).
 * Registration API is _much_ simpler: generally all functions are just taking `Fn() -> PassObject` rather than several different `bool`s.
bors added a commit that referenced this pull request Oct 23, 2019
Rollup of 9 pull requests

Successful merges:

 - #65144 (Add Cow::is_borrowed and Cow::is_owned)
 - #65193 (Lockless LintStore)
 - #65583 (rustc_metadata: use a table for super_predicates, fn_sig, impl_trait_ref.)
 - #65641 (Derive `Rustc{En,De}codable` for `TokenStream`.)
 - #65648 (Eliminate `intersect_opt`.)
 - #65657 (Remove `InternedString`)
 - #65666 (Deprecated proc_macro doesn't trigger warning on build library)
 - #65691 (Update E0659 error code long explanation to 2018 edition)
 - #65704 (relax ExactSizeIterator bound on write_bytes)

Failed merges:

 - #65625 (Turn crate store into a resolver output)

r? @ghost
Centril added a commit to Centril/rust that referenced this pull request Oct 23, 2019
… r=nikomatsakis

Lockless LintStore

This removes mutability from the lint store after registration. Each commit stands alone, for the most part, though they don't make sense out of sequence.

The intent here is to move LintStore to a more parallel-friendly architecture, although also just a cleaner one from an implementation perspective. Specifically, this has the following changes:
 * We no longer implicitly register lints when registering lint passes
    * For the most part this means that registration calls now likely want to call something like:
       `lint_store.register_lints(&Pass::get_lints())` as well as `register_*_pass`.
    * In theory this is a simplification as it's much easier for folks to just register lints and then have passes that implement whichever lint however they want, rather than necessarily tying passes to lints.
 * Lint passes still have a list of associated lints, but a followup PR could plausibly change that
   * This list must be known for a given pass type, not instance, i.e., `fn get_lints()` is the signature instead of `fn get_lints(&self)` as before.
 * We do not store pass objects, instead storing constructor functions. This means we always get new passes when running lints (this happens approximately once though for a given compiler session, so no behavior change is expected).
 * Registration API is _much_ simpler: generally all functions are just taking `Fn() -> PassObject` rather than several different `bool`s.
bors added a commit that referenced this pull request Oct 23, 2019
Rollup of 12 pull requests

Successful merges:

 - #64178 (More Clippy fixes for alloc, core and std)
 - #65144 (Add Cow::is_borrowed and Cow::is_owned)
 - #65193 (Lockless LintStore)
 - #65479 (Add the `matches!( $expr, $pat ) -> bool` macro)
 - #65518 (Avoid ICE when checking `Destination` of `break` inside a closure)
 - #65583 (rustc_metadata: use a table for super_predicates, fn_sig, impl_trait_ref.)
 - #65641 (Derive `Rustc{En,De}codable` for `TokenStream`.)
 - #65648 (Eliminate `intersect_opt`.)
 - #65657 (Remove `InternedString`)
 - #65691 (Update E0659 error code long explanation to 2018 edition)
 - #65696 (Fix an issue with const inference variables sticking around under Chalk + NLL)
 - #65704 (relax ExactSizeIterator bound on write_bytes)

Failed merges:

r? @ghost
bors added a commit that referenced this pull request Oct 24, 2019
Rollup of 12 pull requests

Successful merges:

 - #64178 (More Clippy fixes for alloc, core and std)
 - #65144 (Add Cow::is_borrowed and Cow::is_owned)
 - #65193 (Lockless LintStore)
 - #65479 (Add the `matches!( $expr, $pat ) -> bool` macro)
 - #65518 (Avoid ICE when checking `Destination` of `break` inside a closure)
 - #65583 (rustc_metadata: use a table for super_predicates, fn_sig, impl_trait_ref.)
 - #65641 (Derive `Rustc{En,De}codable` for `TokenStream`.)
 - #65648 (Eliminate `intersect_opt`.)
 - #65657 (Remove `InternedString`)
 - #65691 (Update E0659 error code long explanation to 2018 edition)
 - #65696 (Fix an issue with const inference variables sticking around under Chalk + NLL)
 - #65704 (relax ExactSizeIterator bound on write_bytes)

Failed merges:

r? @ghost
@bors bors merged commit 4e8d1b2 into rust-lang:master Oct 24, 2019
1 of 4 checks passed
1 of 4 checks passed
pr Build #20191022.98 failed
Details
pr (Linux mingw-check) Linux mingw-check failed
Details
pr (Linux x86_64-gnu-llvm-6.0) Linux x86_64-gnu-llvm-6.0 failed
Details
pr (LinuxTools) LinuxTools succeeded
Details
@Mark-Simulacrum Mark-Simulacrum deleted the Mark-Simulacrum:lockless-lintstore branch Oct 24, 2019
bors added a commit that referenced this pull request Oct 26, 2019
Remove lint callback from driver

This is leftover from a restructuring of lint registration for drivers; it should now happen via the register_lints field on Config rather than this function.

This is not used by anyone to my knowledge (including the compiler itself); it was introduced in an abandoned refactor in #65193.
Centril added a commit to Centril/rust that referenced this pull request Oct 26, 2019
…omatsakis

Remove lint callback from driver

This is leftover from a restructuring of lint registration for drivers; it should now happen via the register_lints field on Config rather than this function.

This is not used by anyone to my knowledge (including the compiler itself); it was introduced in an abandoned refactor in rust-lang#65193.
Centril added a commit to Centril/rust that referenced this pull request Oct 26, 2019
…omatsakis

Remove lint callback from driver

This is leftover from a restructuring of lint registration for drivers; it should now happen via the register_lints field on Config rather than this function.

This is not used by anyone to my knowledge (including the compiler itself); it was introduced in an abandoned refactor in rust-lang#65193.
Centril added a commit to Centril/rust that referenced this pull request Oct 27, 2019
…omatsakis

Remove lint callback from driver

This is leftover from a restructuring of lint registration for drivers; it should now happen via the register_lints field on Config rather than this function.

This is not used by anyone to my knowledge (including the compiler itself); it was introduced in an abandoned refactor in rust-lang#65193.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
7 participants
You can’t perform that action at this time.