-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
ICE while compiling hyper (StableHasher: unexpected region '_#0r
)
#64964
Comments
fyi @seanmonstar |
I also get this with
|
getting this while trying to compile rust itself(702b45e): Running `/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/bootstrap/debug/rustc --edition=2018 --crate-name rustc_interface src/librustc_interface/lib.rs --error-format json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C opt-level=2 -C codegen-units=1 -C debuginfo=2 -C metadata=0d169ea062d01b70 -C extra-filename=-0d169ea062d01b70 --out-dir /home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -C incremental=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/incremental -L dependency=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps -L dependency=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps --extern log=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/liblog-1022b9df95eebe1a.rmeta --extern once_cell=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libonce_cell-6557f60babc39d8f.rmeta --extern rustc=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc-ba8998efb57f0686.rmeta --extern rayon=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_rayon-3f14a06398fb8d27.rmeta --extern rustc_codegen_ssa=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_codegen_ssa-8ff5b3fb9091fa83.rmeta --extern rustc_codegen_utils=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_codegen_utils-9b595da31805269f.rmeta --extern rustc_data_structures=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_data_structures-985dc1d30c7b19f5.rmeta --extern rustc_errors=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_errors-1f0042c7f0e4a720.rmeta --extern rustc_incremental=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_incremental-d8d56e69686884cb.rmeta --extern rustc_lint=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_lint-4bf5ab069f3fe1f1.rmeta --extern rustc_metadata=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_metadata-19155a172969d2ff.rmeta --extern rustc_mir=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_mir-e9addb77fa1aa059.rmeta --extern rustc_passes=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_passes-dd83cc2cdbdbe032.rmeta --extern rustc_plugin=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_plugin_impl-89c0defd5d23fbe3.rmeta --extern rustc_privacy=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_privacy-98cbfa24e27cade1.rmeta --extern rustc_resolve=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_resolve-6ef3ba397ea451ec.rmeta --extern rustc_traits=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_traits-d2a356201ce29ff2.rmeta --extern rustc_typeck=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_typeck-e407089fd5307e47.rmeta --extern rustc_serialize=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libserialize-c62857801cb33412.rmeta --extern smallvec=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsmallvec-4a539e426cc999c8.rmeta --extern syntax=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax-f56e8cee2d0bfce1.rmeta --extern syntax_ext=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax_ext-1746e77c97422870.rmeta --extern syntax_pos=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax_pos-bd2603bbfec5f360.rmeta --extern tempfile=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libtempfile-b1326e77fb6c7a44.rmeta -Zexternal-macro-backtrace '-Clink-args=-Wl,-rpath,$ORIGIN/../lib' -Wrust_2018_idioms -Wunused_lifetimes -Zunstable-options '-Wrustc::internal' -Cprefer-dynamic --cfg=parallel_compiler -Zbinary-dep-depinfo -L native=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/build/backtrace-sys-3e31d40a6e460e10/out -L native=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/build/miniz-sys-56b75c4f3d592d4c/out`
rustc command: "LD_LIBRARY_PATH"="/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1/lib:/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps:/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1/lib" "/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "--edition=2018" "--crate-name" "rustc_interface" "src/librustc_interface/lib.rs" "--error-format" "json" "--json=diagnostic-rendered-ansi" "--crate-type" "lib" "--emit=dep-info,metadata,link" "-C" "opt-level=2" "-C" "codegen-units=1" "-C" "debuginfo=2" "-C" "metadata=0d169ea062d01b70" "-C" "extra-filename=-0d169ea062d01b70" "--out-dir" "/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps" "--target" "x86_64-unknown-linux-gnu" "-C" "incremental=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/incremental" "-L" "dependency=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps" "-L" "dependency=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps" "--extern" "log=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/liblog-1022b9df95eebe1a.rmeta" "--extern" "once_cell=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libonce_cell-6557f60babc39d8f.rmeta" "--extern" "rustc=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc-ba8998efb57f0686.rmeta" "--extern" "rayon=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_rayon-3f14a06398fb8d27.rmeta" "--extern" "rustc_codegen_ssa=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_codegen_ssa-8ff5b3fb9091fa83.rmeta" "--extern" "rustc_codegen_utils=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_codegen_utils-9b595da31805269f.rmeta" "--extern" "rustc_data_structures=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_data_structures-985dc1d30c7b19f5.rmeta" "--extern" "rustc_errors=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_errors-1f0042c7f0e4a720.rmeta" "--extern" "rustc_incremental=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_incremental-d8d56e69686884cb.rmeta" "--extern" "rustc_lint=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_lint-4bf5ab069f3fe1f1.rmeta" "--extern" "rustc_metadata=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_metadata-19155a172969d2ff.rmeta" "--extern" "rustc_mir=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_mir-e9addb77fa1aa059.rmeta" "--extern" "rustc_passes=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_passes-dd83cc2cdbdbe032.rmeta" "--extern" "rustc_plugin=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_plugin_impl-89c0defd5d23fbe3.rmeta" "--extern" "rustc_privacy=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_privacy-98cbfa24e27cade1.rmeta" "--extern" "rustc_resolve=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_resolve-6ef3ba397ea451ec.rmeta" "--extern" "rustc_traits=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_traits-d2a356201ce29ff2.rmeta" "--extern" "rustc_typeck=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_typeck-e407089fd5307e47.rmeta" "--extern" "rustc_serialize=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libserialize-c62857801cb33412.rmeta" "--extern" "smallvec=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsmallvec-4a539e426cc999c8.rmeta" "--extern" "syntax=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax-f56e8cee2d0bfce1.rmeta" "--extern" "syntax_ext=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax_ext-1746e77c97422870.rmeta" "--extern" "syntax_pos=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax_pos-bd2603bbfec5f360.rmeta" "--extern" "tempfile=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libtempfile-b1326e77fb6c7a44.rmeta" "-Zexternal-macro-backtrace" "-Clink-args=-Wl,-rpath,$ORIGIN/../lib" "-Wrust_2018_idioms" "-Wunused_lifetimes" "-Zunstable-options" "-Wrustc::internal" "-Cprefer-dynamic" "--cfg=parallel_compiler" "-Zbinary-dep-depinfo" "-L" "native=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/build/backtrace-sys-3e31d40a6e460e10/out" "-L" "native=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/build/miniz-sys-56b75c4f3d592d4c/out" "--sysroot" "/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1" "-C" "debug-assertions=n" "-Z" "force-unstable-if-unmarked"
sysroot: "/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1"
libdir: "/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1/lib"
error: internal compiler error: src/librustc/ich/impls_ty.rs:100: StableHasher: unexpected region '_#4r
thread '<unnamed>' panicked at 'Box<Any>', src/librustc_errors/lib.rs:912:9
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/libunwind.rs:88
1: backtrace::backtrace::trace_unsynchronized
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/mod.rs:66
2: std::sys_common::backtrace::_print_fmt
at src/libstd/sys_common/backtrace.rs:76
3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
at src/libstd/sys_common/backtrace.rs:60
4: core::fmt::write
at src/libcore/fmt/mod.rs:1028
5: std::io::Write::write_fmt
at src/libstd/io/mod.rs:1412
6: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:64
7: std::sys_common::backtrace::print
at src/libstd/sys_common/backtrace.rs:49
8: std::panicking::default_hook::{{closure}}
at src/libstd/panicking.rs:196
9: std::panicking::default_hook
at src/libstd/panicking.rs:210
10: rustc_driver::report_ice
at src/librustc_driver/lib.rs:1187
11: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:477
12: std::panicking::begin_panic
at ./src/libstd/panicking.rs:407
13: rustc_errors::HandlerInner::bug
at src/librustc_errors/lib.rs:912
14: rustc_errors::Handler::bug
at src/librustc_errors/lib.rs:684
15: rustc::util::bug::opt_span_bug_fmt::{{closure}}
at src/librustc/util/bug.rs:36
16: rustc::ty::context::tls::with_opt::{{closure}}
at src/librustc/ty/context.rs:1982
17: rustc::ty::context::tls::with_context_opt
at src/librustc/ty/context.rs:1932
18: rustc::ty::context::tls::with_opt
at src/librustc/ty/context.rs:1982
19: rustc::util::bug::opt_span_bug_fmt
at src/librustc/util/bug.rs:32
20: rustc::util::bug::bug_fmt
at src/librustc/util/bug.rs:12
21: rustc::ich::impls_ty::<impl rustc_data_structures::stable_hasher::HashStable<rustc::ich::hcx::StableHashingContext> for rustc::ty::sty::RegionKind>::hash_stable
at src/librustc/ich/impls_ty.rs:100
22: <&T as rustc_data_structures::stable_hasher::HashStable<CTX>>::hash_stable
at ./src/librustc_data_structures/stable_hasher.rs:421
23: rustc::ty::sty::_DERIVE_rustc_data_structures_stable_hasher_HashStable_rustc_ich_StableHashingContext_ctx_FOR_TyKind::<impl rustc_data_structures::stable_hasher::HashStable<rustc::ich::hcx::StableHashingContext> for rustc::ty::sty::TyKind>::hash_stable
at src/librustc/ty/sty.rs:89
24: <&T as rustc_data_structures::stable_hasher::HashStable<CTX>>::hash_stable
at ./src/librustc_data_structures/stable_hasher.rs:421
25: rustc::ty::context::_DERIVE_rustc_data_structures_stable_hasher_HashStable_rustc_ich_StableHashingContext_ctx_FOR_GeneratorInteriorTypeCause::<impl rustc_data_structures::stable_hasher::HashStable<rustc::ich::hcx::StableHashingContext> for rustc::ty::context::GeneratorInteriorTypeCause>::hash_stable
at src/librustc/ty/context.rs:309
26: <[T] as rustc_data_structures::stable_hasher::HashStable<CTX>>::hash_stable
at ./src/librustc_data_structures/stable_hasher.rs:289
27: <alloc::vec::Vec<T> as rustc_data_structures::stable_hasher::HashStable<CTX>>::hash_stable
at ./src/librustc_data_structures/stable_hasher.rs:297
28: <rustc::ty::context::TypeckTables as rustc_data_structures::stable_hasher::HashStable<rustc::ich::hcx::StableHashingContext>>::hash_stable::{{closure}}
at src/librustc/ty/context.rs:810
29: rustc::ich::hcx::StableHashingContext::with_node_id_hashing_mode
at src/librustc/ich/hcx.rs:129
30: <rustc::ty::context::TypeckTables as rustc_data_structures::stable_hasher::HashStable<rustc::ich::hcx::StableHashingContext>>::hash_stable
at src/librustc/ty/context.rs:769
31: <&T as rustc_data_structures::stable_hasher::HashStable<CTX>>::hash_stable
at ./src/librustc_data_structures/stable_hasher.rs:421
32: <&T as rustc_data_structures::stable_hasher::HashStable<CTX>>::hash_stable
at ./src/librustc_data_structures/stable_hasher.rs:421
33: rustc::dep_graph::graph::hash_result
at src/librustc/dep_graph/graph.rs:88
34: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::typeck_tables_of>::hash_result
at src/librustc/ty/query/plumbing.rs:1011
35: core::ops::function::FnOnce::call_once
at ./src/libcore/ops/function.rs:227
36: rustc::dep_graph::graph::DepGraph::with_task_impl
at ./src/librustc/dep_graph/graph.rs:286
37: rustc::dep_graph::graph::DepGraph::with_task
at ./src/librustc/dep_graph/graph.rs:202
38: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:565
39: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:278
40: rustc::ty::context::tls::enter_context::{{closure}}
at ./src/librustc/ty/context.rs:1854
41: rustc_rayon_core::tlv::with
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/tlv.rs:19
42: rustc::ty::context::tls::set_tlv
at ./src/librustc/ty/context.rs:1761
43: rustc::ty::context::tls::enter_context
at ./src/librustc/ty/context.rs:1853
44: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:277
45: rustc::ty::context::tls::with_related_context::{{closure}}
at ./src/librustc/ty/context.rs:1960
46: rustc::ty::context::tls::with_context::{{closure}}
at ./src/librustc/ty/context.rs:1943
47: rustc::ty::context::tls::with_context_opt
at ./src/librustc/ty/context.rs:1932
48: rustc::ty::context::tls::with_context
at ./src/librustc/ty/context.rs:1943
49: rustc::ty::context::tls::with_related_context
at ./src/librustc/ty/context.rs:1956
50: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query
at ./src/librustc/ty/query/plumbing.rs:266
51: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:557
52: rustc::ty::query::plumbing::with_diagnostics
at ./src/librustc/ty/query/plumbing.rs:211
53: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job
at ./src/librustc/ty/query/plumbing.rs:556
54: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
at ./src/librustc/ty/query/plumbing.rs:434
55: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::typeck_tables_of>::compute::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:1003
56: rustc::ty::query::__query_compute::typeck_tables_of
at ./src/librustc/ty/query/plumbing.rs:954
57: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::typeck_tables_of>::compute
at ./src/librustc/ty/query/plumbing.rs:995
58: rustc::dep_graph::graph::DepGraph::with_task_impl::{{closure}}::{{closure}}
at ./src/librustc/dep_graph/graph.rs:277
59: rustc::ty::context::tls::enter_context::{{closure}}
at ./src/librustc/ty/context.rs:1854
60: rustc_rayon_core::tlv::with
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/tlv.rs:19
61: rustc::ty::context::tls::set_tlv
at ./src/librustc/ty/context.rs:1761
62: rustc::ty::context::tls::enter_context
at ./src/librustc/ty/context.rs:1853
63: rustc::dep_graph::graph::DepGraph::with_task_impl::{{closure}}
at ./src/librustc/dep_graph/graph.rs:276
64: rustc::ty::context::tls::with_context::{{closure}}
at ./src/librustc/ty/context.rs:1943
65: rustc::ty::context::tls::with_context_opt
at ./src/librustc/ty/context.rs:1932
66: rustc::ty::context::tls::with_context
at ./src/librustc/ty/context.rs:1943
67: rustc::dep_graph::graph::DepGraph::with_task_impl
at ./src/librustc/dep_graph/graph.rs:270
68: rustc::dep_graph::graph::DepGraph::with_task
at ./src/librustc/dep_graph/graph.rs:202
69: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:565
70: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:278
71: rustc::ty::context::tls::enter_context::{{closure}}
at ./src/librustc/ty/context.rs:1854
72: rustc_rayon_core::tlv::with
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/tlv.rs:19
73: rustc::ty::context::tls::set_tlv
at ./src/librustc/ty/context.rs:1761
74: rustc::ty::context::tls::enter_context
at ./src/librustc/ty/context.rs:1853
75: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:277
76: rustc::ty::context::tls::with_related_context::{{closure}}
at ./src/librustc/ty/context.rs:1960
77: rustc::ty::context::tls::with_context::{{closure}}
at ./src/librustc/ty/context.rs:1943
78: rustc::ty::context::tls::with_context_opt
at ./src/librustc/ty/context.rs:1932
79: rustc::ty::context::tls::with_context
at ./src/librustc/ty/context.rs:1943
80: rustc::ty::context::tls::with_related_context
at ./src/librustc/ty/context.rs:1956
81: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query
at ./src/librustc/ty/query/plumbing.rs:266
82: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:557
83: rustc::ty::query::plumbing::with_diagnostics
at ./src/librustc/ty/query/plumbing.rs:211
84: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job
at ./src/librustc/ty/query/plumbing.rs:556
85: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
at ./src/librustc/ty/query/plumbing.rs:434
86: rustc::ty::query::TyCtxtAt::typeck_tables_of
at ./src/librustc/ty/query/plumbing.rs:1080
87: rustc::ty::query::<impl rustc::ty::context::TyCtxt>::typeck_tables_of
at ./src/librustc/ty/query/plumbing.rs:1072
88: rustc_typeck::collect::checked_type_of
at src/librustc_typeck/collect.rs:1362
89: rustc_typeck::collect::type_of
at src/librustc_typeck/collect.rs:1144
90: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::type_of>::compute::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:1003
91: rustc::ty::query::__query_compute::type_of
at ./src/librustc/ty/query/plumbing.rs:954
92: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::type_of>::compute
at ./src/librustc/ty/query/plumbing.rs:995
93: rustc::dep_graph::graph::DepGraph::with_task_impl::{{closure}}::{{closure}}
at ./src/librustc/dep_graph/graph.rs:277
94: rustc::ty::context::tls::enter_context::{{closure}}
at ./src/librustc/ty/context.rs:1854
95: rustc_rayon_core::tlv::with
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/tlv.rs:19
96: rustc::ty::context::tls::set_tlv
at ./src/librustc/ty/context.rs:1761
97: rustc::ty::context::tls::enter_context
at ./src/librustc/ty/context.rs:1853
98: rustc::dep_graph::graph::DepGraph::with_task_impl::{{closure}}
at ./src/librustc/dep_graph/graph.rs:276
99: rustc::ty::context::tls::with_context::{{closure}}
at ./src/librustc/ty/context.rs:1943
100: rustc::ty::context::tls::with_context_opt
at ./src/librustc/ty/context.rs:1932
101: rustc::ty::context::tls::with_context
at ./src/librustc/ty/context.rs:1943
102: rustc::dep_graph::graph::DepGraph::with_task_impl
at ./src/librustc/dep_graph/graph.rs:270
103: rustc::dep_graph::graph::DepGraph::with_task
at ./src/librustc/dep_graph/graph.rs:202
104: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:565
105: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:278
106: rustc::ty::context::tls::enter_context::{{closure}}
at ./src/librustc/ty/context.rs:1854
107: rustc_rayon_core::tlv::with
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/tlv.rs:19
108: rustc::ty::context::tls::set_tlv
at ./src/librustc/ty/context.rs:1761
109: rustc::ty::context::tls::enter_context
at ./src/librustc/ty/context.rs:1853
110: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:277
111: rustc::ty::context::tls::with_related_context::{{closure}}
at ./src/librustc/ty/context.rs:1960
112: rustc::ty::context::tls::with_context::{{closure}}
at ./src/librustc/ty/context.rs:1943
113: rustc::ty::context::tls::with_context_opt
at ./src/librustc/ty/context.rs:1932
114: rustc::ty::context::tls::with_context
at ./src/librustc/ty/context.rs:1943
115: rustc::ty::context::tls::with_related_context
at ./src/librustc/ty/context.rs:1956
116: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query
at ./src/librustc/ty/query/plumbing.rs:266
117: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:557
118: rustc::ty::query::plumbing::with_diagnostics
at ./src/librustc/ty/query/plumbing.rs:211
119: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job
at ./src/librustc/ty/query/plumbing.rs:556
120: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
at ./src/librustc/ty/query/plumbing.rs:434
121: rustc::ty::query::TyCtxtAt::type_of
at ./src/librustc/ty/query/plumbing.rs:1080
122: rustc::ty::query::<impl rustc::ty::context::TyCtxt>::type_of
at ./src/librustc/ty/query/plumbing.rs:1072
123: <rustc_typeck::collect::CollectItemTypesVisitor as rustc::hir::intravisit::Visitor>::visit_expr
at src/librustc_typeck/collect.rs:141
124: rustc::hir::intravisit::walk_expr
at ./<::syntax::visit::walk_list macros>:2
125: rustc::hir::intravisit::walk_local
at ./<::syntax::visit::walk_list macros>:2
126: rustc::hir::intravisit::walk_block
at ./<::syntax::visit::walk_list macros>:2
127: rustc::hir::intravisit::Visitor::visit_fn
at ./src/librustc/hir/intravisit.rs:293
128: rustc::hir::intravisit::walk_item
at ./src/librustc/hir/intravisit.rs:485
129: <rustc_typeck::collect::CollectItemTypesVisitor as rustc::hir::intravisit::Visitor>::visit_item
at src/librustc_typeck/collect.rs:114
130: rustc::hir::map::Map::visit_item_likes_in_module
at ./src/librustc/hir/map/mod.rs:578
131: rustc_typeck::collect::collect_mod_item_types
at src/librustc_typeck/collect.rs:57
132: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::collect_mod_item_types>::compute::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:1003
133: rustc::ty::query::__query_compute::collect_mod_item_types
at ./src/librustc/ty/query/plumbing.rs:954
134: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::collect_mod_item_types>::compute
at ./src/librustc/ty/query/plumbing.rs:995
135: rustc::dep_graph::graph::DepGraph::with_task_impl::{{closure}}::{{closure}}
at ./src/librustc/dep_graph/graph.rs:277
136: rustc::ty::context::tls::enter_context::{{closure}}
at ./src/librustc/ty/context.rs:1854
137: rustc_rayon_core::tlv::with
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/tlv.rs:19
138: rustc::ty::context::tls::set_tlv
at ./src/librustc/ty/context.rs:1761
139: rustc::ty::context::tls::enter_context
at ./src/librustc/ty/context.rs:1853
140: rustc::dep_graph::graph::DepGraph::with_task_impl::{{closure}}
at ./src/librustc/dep_graph/graph.rs:276
141: rustc::ty::context::tls::with_context::{{closure}}
at ./src/librustc/ty/context.rs:1943
142: rustc::ty::context::tls::with_context_opt
at ./src/librustc/ty/context.rs:1932
143: rustc::ty::context::tls::with_context
at ./src/librustc/ty/context.rs:1943
144: rustc::dep_graph::graph::DepGraph::with_task_impl
at ./src/librustc/dep_graph/graph.rs:270
145: rustc::dep_graph::graph::DepGraph::with_task
at ./src/librustc/dep_graph/graph.rs:202
146: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:565
147: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:278
148: rustc::ty::context::tls::enter_context::{{closure}}
at ./src/librustc/ty/context.rs:1854
149: rustc_rayon_core::tlv::with
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/tlv.rs:19
150: rustc::ty::context::tls::set_tlv
at ./src/librustc/ty/context.rs:1761
151: rustc::ty::context::tls::enter_context
at ./src/librustc/ty/context.rs:1853
152: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:277
153: rustc::ty::context::tls::with_related_context::{{closure}}
at ./src/librustc/ty/context.rs:1960
154: rustc::ty::context::tls::with_context::{{closure}}
at ./src/librustc/ty/context.rs:1943
155: rustc::ty::context::tls::with_context_opt
at ./src/librustc/ty/context.rs:1932
156: rustc::ty::context::tls::with_context
at ./src/librustc/ty/context.rs:1943
157: rustc::ty::context::tls::with_related_context
at ./src/librustc/ty/context.rs:1956
158: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query
at ./src/librustc/ty/query/plumbing.rs:266
159: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:557
160: rustc::ty::query::plumbing::with_diagnostics
at ./src/librustc/ty/query/plumbing.rs:211
161: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job
at ./src/librustc/ty/query/plumbing.rs:556
162: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
at ./src/librustc/ty/query/plumbing.rs:434
163: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::ensure_query
at ./src/librustc/ty/query/plumbing.rs:619
164: rustc::ty::query::TyCtxtEnsure::collect_mod_item_types
at ./src/librustc/ty/query/plumbing.rs:1031
165: rustc_typeck::check_crate::{{closure}}::{{closure}}
at src/librustc_typeck/lib.rs:306
166: rustc::util::common::time_ext
at ./src/librustc/util/common.rs:116
167: rustc::util::common::time
at ./src/librustc/util/common.rs:110
168: rustc_typeck::check_crate::{{closure}}
at src/librustc_typeck/lib.rs:304
169: rustc::session::Session::track_errors
at ./src/librustc/session/mod.rs:334
170: rustc_typeck::check_crate
at src/librustc_typeck/lib.rs:303
171: rustc_interface::passes::analysis
at src/librustc_interface/passes.rs:915
172: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::analysis>::compute::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:1003
173: rustc::ty::query::__query_compute::analysis
at ./src/librustc/ty/query/plumbing.rs:954
174: rustc::dep_graph::graph::DepGraph::with_task_impl::{{closure}}::{{closure}}
at ./src/librustc/dep_graph/graph.rs:277
175: rustc::ty::context::tls::enter_context::{{closure}}
at ./src/librustc/ty/context.rs:1854
176: rustc_rayon_core::tlv::with
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/tlv.rs:19
177: rustc::ty::context::tls::set_tlv
at ./src/librustc/ty/context.rs:1761
178: rustc::ty::context::tls::enter_context
at ./src/librustc/ty/context.rs:1853
179: rustc::dep_graph::graph::DepGraph::with_task_impl::{{closure}}
at ./src/librustc/dep_graph/graph.rs:276
180: rustc::ty::context::tls::with_context::{{closure}}
at ./src/librustc/ty/context.rs:1943
181: rustc::ty::context::tls::with_context_opt
at ./src/librustc/ty/context.rs:1932
182: rustc::ty::context::tls::with_context
at ./src/librustc/ty/context.rs:1943
183: rustc::dep_graph::graph::DepGraph::with_task_impl
at ./src/librustc/dep_graph/graph.rs:270
184: rustc::dep_graph::graph::DepGraph::with_eval_always_task
at ./src/librustc/dep_graph/graph.rs:387
185: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:559
186: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:278
187: rustc::ty::context::tls::enter_context::{{closure}}
at ./src/librustc/ty/context.rs:1854
188: rustc_rayon_core::tlv::with
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/tlv.rs:19
189: rustc::ty::context::tls::set_tlv
at ./src/librustc/ty/context.rs:1761
190: rustc::ty::context::tls::enter_context
at ./src/librustc/ty/context.rs:1853
191: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:277
192: rustc::ty::context::tls::with_related_context::{{closure}}
at ./src/librustc/ty/context.rs:1960
193: rustc::ty::context::tls::with_context::{{closure}}
at ./src/librustc/ty/context.rs:1943
194: rustc::ty::context::tls::with_context_opt
at ./src/librustc/ty/context.rs:1932
195: rustc::ty::context::tls::with_context
at ./src/librustc/ty/context.rs:1943
196: rustc::ty::context::tls::with_related_context
at ./src/librustc/ty/context.rs:1956
197: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query
at ./src/librustc/ty/query/plumbing.rs:266
198: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}
at ./src/librustc/ty/query/plumbing.rs:557
199: rustc::ty::query::plumbing::with_diagnostics
at ./src/librustc/ty/query/plumbing.rs:211
200: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job
at ./src/librustc/ty/query/plumbing.rs:556
201: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
at ./src/librustc/ty/query/plumbing.rs:434
202: rustc::ty::query::TyCtxtAt::analysis
at ./src/librustc/ty/query/plumbing.rs:1080
203: rustc::ty::query::<impl rustc::ty::context::TyCtxt>::analysis
at ./src/librustc/ty/query/plumbing.rs:1072
204: rustc_driver::run_compiler::{{closure}}::{{closure}}
at src/librustc_driver/lib.rs:377
205: rustc_interface::passes::BoxedGlobalCtxt::enter::{{closure}}::{{closure}}
at ./src/librustc_interface/passes.rs:809
206: rustc::ty::context::tls::enter_global::{{closure}}
at ./src/librustc/ty/context.rs:1886
207: rustc::ty::context::tls::enter_context::{{closure}}
at ./src/librustc/ty/context.rs:1854
208: rustc_rayon_core::tlv::with
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/tlv.rs:19
209: rustc::ty::context::tls::set_tlv
at ./src/librustc/ty/context.rs:1761
210: rustc::ty::context::tls::enter_context
at ./src/librustc/ty/context.rs:1853
211: rustc::ty::context::tls::enter_global
at ./src/librustc/ty/context.rs:1885
212: rustc_interface::passes::BoxedGlobalCtxt::enter::{{closure}}
at ./src/librustc_interface/passes.rs:809
213: rustc_interface::passes::BoxedGlobalCtxt::access::{{closure}}
at ./<::rustc_data_structures::box_region::declare_box_region_type macros>:21
214: rustc_interface::passes::create_global_ctxt::{{closure}}
at src/librustc_interface/passes.rs:873
215: rustc_data_structures::box_region::PinnedGenerator<I,A,R>::access
at ./src/librustc_data_structures/box_region.rs:52
216: rustc_interface::passes::BoxedGlobalCtxt::access
at ./<::rustc_data_structures::box_region::declare_box_region_type macros>:24
217: rustc_interface::passes::BoxedGlobalCtxt::enter
at ./src/librustc_interface/passes.rs:809
218: rustc_driver::run_compiler::{{closure}}
at src/librustc_driver/lib.rs:377
219: rustc_interface::interface::run_compiler_in_existing_thread_pool
at ./src/librustc_interface/interface.rs:122
220: rustc_interface::interface::run_compiler::{{closure}}
at ./src/librustc_interface/interface.rs:141
221: rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}
at ./src/librustc_interface/util.rs:219
222: rustc_rayon_core::thread_pool::ThreadPool::install::{{closure}}
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/thread_pool/mod.rs:160
223: rustc_rayon_core::registry::Registry::in_worker_cold::{{closure}}
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/registry.rs:395
224: <rustc_rayon_core::job::StackJob<L,F,R> as rustc_rayon_core::job::Job>::execute::{{closure}}
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/job.rs:121
225: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at ./src/libstd/panic.rs:315
226: std::panicking::try::do_call
at ./src/libstd/panicking.rs:292
227: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:80
228: std::panicking::try
at ./src/libstd/panicking.rs:271
229: std::panic::catch_unwind
at ./src/libstd/panic.rs:394
230: rustc_rayon_core::unwind::halt_unwinding
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/unwind.rs:19
231: <rustc_rayon_core::job::StackJob<L,F,R> as rustc_rayon_core::job::Job>::execute
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/job.rs:121
232: rustc_rayon_core::job::JobRef::execute
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/job.rs:62
233: rustc_rayon_core::registry::WorkerThread::execute
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/registry.rs:657
234: rustc_rayon_core::registry::WorkerThread::wait_until_cold
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/registry.rs:637
235: rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}::{{closure}}::{{closure}}::{{closure}}::{{closure}}::{{closure}}::{{closure}}
at ./src/librustc_interface/util.rs:235
236: scoped_tls::ScopedKey<T>::set
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
237: rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}::{{closure}}::{{closure}}::{{closure}}::{{closure}}::{{closure}}
at ./src/librustc_interface/util.rs:235
238: rustc::ty::context::tls::with_thread_locals::{{closure}}::{{closure}}
at ./src/librustc/ty/context.rs:1842
239: std::thread::local::LocalKey<T>::try_with
at ./src/libstd/thread/local.rs:262
240: std::thread::local::LocalKey<T>::with
at ./src/libstd/thread/local.rs:239
241: rustc::ty::context::tls::with_thread_locals::{{closure}}
at ./src/librustc/ty/context.rs:1834
242: std::thread::local::LocalKey<T>::try_with
at ./src/libstd/thread/local.rs:262
243: std::thread::local::LocalKey<T>::with
at ./src/libstd/thread/local.rs:239
244: rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}::{{closure}}::{{closure}}::{{closure}}::{{closure}}
at ./src/librustc_interface/util.rs:234
245: scoped_tls::ScopedKey<T>::set
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
246: rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}::{{closure}}::{{closure}}::{{closure}}
at ./src/librustc_interface/util.rs:230
247: scoped_tls::ScopedKey<T>::set
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
248: rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}::{{closure}}::{{closure}}
at ./src/librustc_interface/util.rs:229
249: rustc_rayon_core::thread_pool::ThreadPool::scoped_pool::{{closure}}
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/thread_pool/mod.rs:104
250: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:80
251: std::panicking::try
at ./src/libstd/panicking.rs:271
252: std::panic::catch_unwind
at ./src/libstd/panic.rs:394
253: rustc_rayon_core::unwind::halt_unwinding
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/unwind.rs:19
254: rustc_rayon_core::registry::main_loop
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/registry.rs:747
255: rustc_rayon_core::registry::Registry::new::{{closure}}
at /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-rayon-core-0.2.0/src/registry.rs:145
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.40.0-dev (702b45e40 2019-10-01) running on x86_64-unknown-linux-gnu
note: compiler flags: -Z external-macro-backtrace -Z unstable-options -Z binary-dep-depinfo -Z force-unstable-if-unmarked -C opt-level=2 -C codegen-units=1 -C debuginfo=2 -C incremental -C link-args=-Wl,-rpath,$ORIGIN/../lib -C prefer-dynamic -C debug-assertions=n --crate-type lib
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [typeck_tables_of] processing `passes::configure_and_expand`
#1 [typeck_tables_of] processing `passes::configure_and_expand::{{closure}}#0`
#2 [type_of] processing `passes::configure_and_expand::{{closure}}#0`
#3 [collect_mod_item_types] collecting item types in module `passes`
#4 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to previous error
[RUSTC-TIMING] rustc_plugin_impl test:false 558.499
[RUSTC-TIMING] rustc_codegen_ssa test:false 206.389
[RUSTC-TIMING] rustc_codegen_utils test:false 559.006
[RUSTC-TIMING] rustc_interface test:false 42.714
error: could not compile `rustc_interface`.
Caused by:
process didn't exit successfully: `/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/bootstrap/debug/rustc --edition=2018 --crate-name rustc_interface src/librustc_interface/lib.rs --error-format json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C opt-level=2 -C codegen-units=1 -C debuginfo=2 -C metadata=0d169ea062d01b70 -C extra-filename=-0d169ea062d01b70 --out-dir /home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -C incremental=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/incremental -L dependency=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps -L dependency=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps --extern log=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/liblog-1022b9df95eebe1a.rmeta --extern once_cell=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libonce_cell-6557f60babc39d8f.rmeta --extern rustc=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc-ba8998efb57f0686.rmeta --extern rayon=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_rayon-3f14a06398fb8d27.rmeta --extern rustc_codegen_ssa=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_codegen_ssa-8ff5b3fb9091fa83.rmeta --extern rustc_codegen_utils=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_codegen_utils-9b595da31805269f.rmeta --extern rustc_data_structures=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_data_structures-985dc1d30c7b19f5.rmeta --extern rustc_errors=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_errors-1f0042c7f0e4a720.rmeta --extern rustc_incremental=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_incremental-d8d56e69686884cb.rmeta --extern rustc_lint=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_lint-4bf5ab069f3fe1f1.rmeta --extern rustc_metadata=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_metadata-19155a172969d2ff.rmeta --extern rustc_mir=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_mir-e9addb77fa1aa059.rmeta --extern rustc_passes=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_passes-dd83cc2cdbdbe032.rmeta --extern rustc_plugin=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_plugin_impl-89c0defd5d23fbe3.rmeta --extern rustc_privacy=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_privacy-98cbfa24e27cade1.rmeta --extern rustc_resolve=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_resolve-6ef3ba397ea451ec.rmeta --extern rustc_traits=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_traits-d2a356201ce29ff2.rmeta --extern rustc_typeck=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_typeck-e407089fd5307e47.rmeta --extern rustc_serialize=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libserialize-c62857801cb33412.rmeta --extern smallvec=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsmallvec-4a539e426cc999c8.rmeta --extern syntax=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax-f56e8cee2d0bfce1.rmeta --extern syntax_ext=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax_ext-1746e77c97422870.rmeta --extern syntax_pos=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsyntax_pos-bd2603bbfec5f360.rmeta --extern tempfile=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libtempfile-b1326e77fb6c7a44.rmeta -Zexternal-macro-backtrace '-Clink-args=-Wl,-rpath,$ORIGIN/../lib' -Wrust_2018_idioms -Wunused_lifetimes -Zunstable-options '-Wrustc::internal' -Cprefer-dynamic --cfg=parallel_compiler -Zbinary-dep-depinfo -L native=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/build/backtrace-sys-3e31d40a6e460e10/out -L native=/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/build/miniz-sys-56b75c4f3d592d4c/out` (exit code: 101)
warning: build failed, waiting for other jobs to finish...
[RUSTC-TIMING] rustc_save_analysis test:false 212.284
[RUSTC-TIMING] rustc_lint test:false 1965.565
error: build failed
command did not execute successfully: "/home/user/build/2nonpkgs/rust.stuff/rust/rust/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "build" "-Zconfig-profile" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "4" "-v" "--release" "--features" "" "--manifest-path" "/home/user/build/2nonpkgs/rust.stuff/rust/rust/src/rustc/Cargo.toml" "--message-format" "json-render-diagnostics"
expected success, got: exit code: 101
Traceback (most recent call last):
File "./x.py", line 11, in <module>
bootstrap.main()
File "/home/user/build/2nonpkgs/rust.stuff/rust/rust/src/bootstrap/bootstrap.py", line 900, in main
bootstrap(help_triggered)
File "/home/user/build/2nonpkgs/rust.stuff/rust/rust/src/bootstrap/bootstrap.py", line 886, in bootstrap
run(args, env=env, verbose=build.verbose)
File "/home/user/build/2nonpkgs/rust.stuff/rust/rust/src/bootstrap/bootstrap.py", line 141, in run
raise RuntimeError(err)
RuntimeError: failed to run: /home/user/build/2nonpkgs/rust.stuff/rust/rust/build/bootstrap/debug/bootstrap build -vv -j 4
real 84m46.807s
user 174m41.219s
sys 4m12.807s
Compile(failed?:1) took 5087 secs aka 1 hours 24 minutes 47 seconds. date='Wed 02 Oct 2019 01:46:17 AM CEST'
Cleaning up
cache hit (direct) 180213 - 181965 = 1752 0.3444/sec
unsupported code directive 248 - 261 = 13 0.0026/sec
cache size GB 68.9 - 68.5 = -0.4 -0.0001/sec
cleanups performed 36 - 37 = 1 0.0002/sec
called for preprocessing 28698 - 29789 = 1091 0.2145/sec
cache miss 134511 - 136960 = 2449 0.4814/sec
no input file 8169 - 8236 = 67 0.0132/sec
cache hit rate % 63.87 - 63.64 = -0.23 -0.0000/sec
stats updated Wed Oct 00:21:29 2019 2 - = -2 -0.0004/sec
preprocessor error 1281 - 1294 = 13 0.0026/sec
cache hit (preprocessed) 57616 - 57793 = 177 0.0348/sec
files in cache 163696 - 163183 = -513 -0.1008/sec
^ nproc='4' /proc/loadavg='5.23 5.75 6.20 2/609 610464' /proc/cmdline='BOOT_IMAGE=/boot/vmlinuz-linux-stable root=UUID=274eb529-31f7-4bd2-8a48-950fb86ae385 rw root_trim=yes rd.luks.allow-discards rd.luks.options=discard ipv6.disable=1 ipv6.disable_ipv6=1 ipv6.autoconf=0 loglevel=15 log_buf_len=16M ignore_loglevel printk.always_kmsg_dump=y printk.time=y printk.devkmsg=on mminit_loglevel=4 memory_corruption_check=1 fbcon=scrollback:4096k fbcon=font:ProFont6x11 net.ifnames=0 nolvm dobtrfs console=tty1 earlyprintk=vga audit=0 systemd.log_target=kmsg systemd.journald.forward_to_console=1 enforcing=0 udev.children-max=1256 rd.udev.children-max=1256 nohz=on oops=panic crashkernel=256M panic=0 print_fatal_signals=1 page_poison=1 psi=1 sysrq_always_enabled random.trust_cpu=off logo.nologo lpj=0 mce=bootlog reboot=force,cold noexec=on nohibernate scsi_mod.use_blk_mq=1 consoleblank=120 mitigations=off nospectre_v1 nospectre_v2 spectre_v2=off nospec_store_bypass_disable kvm-intel.vmentry_l1d_flush=never l1tf=off nopti pti=off no_stf_barrier noibrs noibpb ssbd=force-off spectre_v2_user=off noretpoline mds=off rd.log=all noefi cpuidle.governor=menu zram.num_devices=3 zswap.enabled=0 zswap.same_filled_pages_enabled=1 zswap.compressor=zstd zswap.max_pool_percent=40 zswap.zpool=z3fold vsyscall=none acpi_backlight=vendor CPUunderclocking tsc=unstable radeon.audio=0 radeon.lockup_timeout=999000 radeon.test=0 radeon.agpmode=-1 radeon.benchmark=0 radeon.tv=0 radeon.hard_reset=1 radeon.msi=1 radeon.pcie_gen2=-1 radeon.no_wb=1 radeon.dynclks=0 radeon.r4xx_atom=0 radeonfb radeon.fastfb=1 radeon.dpm=1 radeon.runpm=1 radeon.modeset=1 radeon.aspm=0 pcie_aspm=off rcu_nocbs=1-3' |
Confirming bisection range is #64946 |
guessing it's PR #63674 diff --git a/src/librustc/hir/lowering.rs b/src/librustc/hir/lowering.rs
index 2238a56b29d..4310bafd781 100644
--- a/src/librustc/hir/lowering.rs
+++ b/src/librustc/hir/lowering.rs
@@ -988,12 +988,10 @@ impl<'a> LoweringContext<'a> {
// lower attributes (we use the AST version) there is nowhere to keep
// the `HirId`s. We don't actually need HIR version of attributes anyway.
Attribute {
- item: AttrItem {
- path: attr.path.clone(),
- tokens: self.lower_token_stream(attr.tokens.clone()),
- },
id: attr.id,
style: attr.style,
+ path: attr.path.clone(),
+ tokens: self.lower_token_stream(attr.tokens.clone()),
is_sugared_doc: attr.is_sugared_doc,
span: attr.span,
}
diff --git a/src/librustc/ich/impls_syntax.rs b/src/librustc/ich/impls_syntax.rs
index 23a2f115e05..bdcf9e42ac2 100644
--- a/src/librustc/ich/impls_syntax.rs
+++ b/src/librustc/ich/impls_syntax.rs
@@ -196,11 +196,6 @@ impl<'a> HashStable<StableHashingContext<'a>> for ast::Path {
}
}
-impl_stable_hash_for!(struct ::syntax::ast::AttrItem {
- path,
- tokens,
-});
-
impl<'a> HashStable<StableHashingContext<'a>> for ast::Attribute {
fn hash_stable(&self, hcx: &mut StableHashingContext<'a>, hasher: &mut StableHasher) {
// Make sure that these have been filtered out.
@@ -208,15 +203,19 @@ impl<'a> HashStable<StableHashingContext<'a>> for ast::Attribute {
debug_assert!(!self.is_sugared_doc);
let ast::Attribute {
- ref item,
id: _,
style,
+ ref path,
+ ref tokens,
is_sugared_doc: _,
span,
} = *self;
- item.hash_stable(hcx, hasher);
style.hash_stable(hcx, hasher);
+ path.hash_stable(hcx, hasher);
+ for tt in tokens.trees() {
+ tt.hash_stable(hcx, hasher);
+ }
span.hash_stable(hcx, hasher);
}
}
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs
index 023952042e6..7a5c92167bc 100644
--- a/src/libsyntax/ast.rs
+++ b/src/libsyntax/ast.rs
@@ -2139,29 +2139,18 @@ impl rustc_serialize::Decodable for AttrId {
}
}
-#[derive(Clone, RustcEncodable, RustcDecodable, Debug)]
-pub struct AttrItem {
- pub path: Path,
- pub tokens: TokenStream,
-}
-
/// Metadata associated with an item.
/// Doc-comments are promoted to attributes that have `is_sugared_doc = true`.
#[derive(Clone, RustcEncodable, RustcDecodable, Debug)]
pub struct Attribute {
- pub item: AttrItem,
pub id: AttrId,
pub style: AttrStyle,
+ pub path: Path,
+ pub tokens: TokenStream,
pub is_sugared_doc: bool,
pub span: Span,
}
-// Compatibility impl to avoid churn, consider removing.
-impl std::ops::Deref for Attribute {
- type Target = AttrItem;
- fn deref(&self) -> &Self::Target { &self.item }
-}
-
/// `TraitRef`s appear in impls.
///
/// Resolution maps each `TraitRef`'s `ref_id` to its defining trait; that's all
diff --git a/src/libsyntax/attr/mod.rs b/src/libsyntax/attr/mod.rs
index 7bef693a5be..122cb7fb12b 100644
--- a/src/libsyntax/attr/mod.rs
+++ b/src/libsyntax/attr/mod.rs
@@ -9,7 +9,7 @@ pub use StabilityLevel::*;
pub use crate::ast::Attribute;
use crate::ast;
-use crate::ast::{AttrItem, AttrId, AttrStyle, Name, Ident, Path, PathSegment};
+use crate::ast::{AttrId, AttrStyle, Name, Ident, Path, PathSegment};
use crate::ast::{MetaItem, MetaItemKind, NestedMetaItem};
use crate::ast::{Lit, LitKind, Expr, Item, Local, Stmt, StmtKind, GenericParam};
use crate::mut_visit::visit_clobber;
@@ -255,8 +255,9 @@ impl MetaItem {
}
}
-impl AttrItem {
- crate fn meta(&self, span: Span) -> Option<MetaItem> {
+impl Attribute {
+ /// Extracts the `MetaItem` from inside this `Attribute`.
+ pub fn meta(&self) -> Option<MetaItem> {
let mut tokens = self.tokens.trees().peekable();
Some(MetaItem {
path: self.path.clone(),
@@ -268,16 +269,9 @@ impl AttrItem {
} else {
return None;
},
- span,
+ span: self.span,
})
}
-}
-
-impl Attribute {
- /// Extracts the MetaItem from inside this Attribute.
- pub fn meta(&self) -> Option<MetaItem> {
- self.item.meta(self.span)
- }
pub fn parse<'a, T, F>(&self, sess: &'a ParseSess, mut f: F) -> PResult<'a, T>
where F: FnMut(&mut Parser<'a>) -> PResult<'a, T>,
@@ -339,9 +333,10 @@ impl Attribute {
DUMMY_SP,
);
f(&Attribute {
- item: AttrItem { path: meta.path, tokens: meta.kind.tokens(meta.span) },
id: self.id,
style: self.style,
+ path: meta.path,
+ tokens: meta.kind.tokens(meta.span),
is_sugared_doc: true,
span: self.span,
})
@@ -389,9 +384,10 @@ crate fn mk_attr_id() -> AttrId {
pub fn mk_attr(style: AttrStyle, path: Path, tokens: TokenStream, span: Span) -> Attribute {
Attribute {
- item: AttrItem { path, tokens },
id: mk_attr_id(),
style,
+ path,
+ tokens,
is_sugared_doc: false,
span,
}
@@ -412,12 +408,10 @@ pub fn mk_sugared_doc_attr(text: Symbol, span: Span) -> Attribute {
let lit_kind = LitKind::Str(text, ast::StrStyle::Cooked);
let lit = Lit::from_lit_kind(lit_kind, span);
Attribute {
- item: AttrItem {
- path: Path::from_ident(Ident::with_dummy_span(sym::doc).with_span_pos(span)),
- tokens: MetaItemKind::NameValue(lit).tokens(span),
- },
id: mk_attr_id(),
style,
+ path: Path::from_ident(Ident::with_dummy_span(sym::doc).with_span_pos(span)),
+ tokens: MetaItemKind::NameValue(lit).tokens(span),
is_sugared_doc: true,
span,
}
@@ -530,7 +524,7 @@ impl MetaItem {
}
Some(TokenTree::Token(Token { kind: token::Interpolated(nt), .. })) => match *nt {
token::Nonterminal::NtIdent(ident, _) => Path::from_ident(ident),
- token::Nonterminal::NtMeta(ref item) => return item.meta(item.path.span),
+ token::Nonterminal::NtMeta(ref meta) => return Some(meta.clone()),
token::Nonterminal::NtPath(ref path) => path.clone(),
_ => return None,
},
diff --git a/src/libsyntax/config.rs b/src/libsyntax/config.rs
index 2923cc86ba0..990358c674f 100644
--- a/src/libsyntax/config.rs
+++ b/src/libsyntax/config.rs
@@ -122,8 +122,8 @@ impl<'a> StripUnconfigured<'a> {
while !parser.check(&token::CloseDelim(token::Paren)) {
let lo = parser.token.span.lo();
- let item = parser.parse_attr_item()?;
- expanded_attrs.push((item, parser.prev_span.with_lo(lo)));
+ let (path, tokens) = parser.parse_meta_item_unrestricted()?;
+ expanded_attrs.push((path, tokens, parser.prev_span.with_lo(lo)));
parser.expect_one_of(&[token::Comma], &[token::CloseDelim(token::Paren)])?;
}
@@ -150,10 +150,11 @@ impl<'a> StripUnconfigured<'a> {
// `cfg_attr` inside of another `cfg_attr`. E.g.
// `#[cfg_attr(false, cfg_attr(true, some_attr))]`.
expanded_attrs.into_iter()
- .flat_map(|(item, span)| self.process_cfg_attr(ast::Attribute {
- item,
+ .flat_map(|(path, tokens, span)| self.process_cfg_attr(ast::Attribute {
id: attr::mk_attr_id(),
style: attr.style,
+ path,
+ tokens,
is_sugared_doc: false,
span,
}))
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs
index bbd8da2acef..581ef5d4da9 100644
--- a/src/libsyntax/ext/expand.rs
+++ b/src/libsyntax/ext/expand.rs
@@ -1,4 +1,4 @@
-use crate::ast::{self, AttrItem, Block, Ident, LitKind, NodeId, PatKind, Path};
+use crate::ast::{self, Block, Ident, LitKind, NodeId, PatKind, Path};
use crate::ast::{MacStmtStyle, StmtKind, ItemKind};
use crate::attr::{self, HasAttrs};
use crate::source_map::respan;
@@ -617,10 +617,9 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
| Annotatable::Variant(..)
=> panic!("unexpected annotatable"),
})), DUMMY_SP).into();
- let input = self.extract_proc_macro_attr_input(attr.item.tokens, span);
+ let input = self.extract_proc_macro_attr_input(attr.tokens, span);
let tok_result = expander.expand(self.cx, span, input, item_tok);
- let res =
- self.parse_ast_fragment(tok_result, fragment_kind, &attr.item.path, span);
+ let res = self.parse_ast_fragment(tok_result, fragment_kind, &attr.path, span);
self.gate_proc_macro_expansion(span, &res);
res
}
@@ -1523,10 +1522,11 @@ impl<'a, 'b> MutVisitor for InvocationCollector<'a, 'b> {
let meta = attr::mk_list_item(Ident::with_dummy_span(sym::doc), items);
*at = attr::Attribute {
- item: AttrItem { path: meta.path, tokens: meta.kind.tokens(meta.span) },
span: at.span,
id: at.id,
style: at.style,
+ path: meta.path,
+ tokens: meta.kind.tokens(meta.span),
is_sugared_doc: false,
};
} else {
diff --git a/src/libsyntax/ext/mbe/macro_parser.rs b/src/libsyntax/ext/mbe/macro_parser.rs
index d1c50fd8594..8f49ba9572d 100644
--- a/src/libsyntax/ext/mbe/macro_parser.rs
+++ b/src/libsyntax/ext/mbe/macro_parser.rs
@@ -924,7 +924,7 @@ fn parse_nt(p: &mut Parser<'_>, sp: Span, name: Symbol) -> Nonterminal {
FatalError.raise()
}
sym::path => token::NtPath(panictry!(p.parse_path(PathStyle::Type))),
- sym::meta => token::NtMeta(panictry!(p.parse_attr_item())),
+ sym::meta => token::NtMeta(panictry!(p.parse_meta_item())),
sym::vis => token::NtVis(panictry!(p.parse_visibility(true))),
sym::lifetime => if p.check_lifetime() {
token::NtLifetime(p.expect_lifetime().ident)
diff --git a/src/libsyntax/mut_visit.rs b/src/libsyntax/mut_visit.rs
index 3923b9f297b..80dfe9e5be0 100644
--- a/src/libsyntax/mut_visit.rs
+++ b/src/libsyntax/mut_visit.rs
@@ -550,8 +550,7 @@ pub fn noop_visit_local<T: MutVisitor>(local: &mut P<Local>, vis: &mut T) {
}
pub fn noop_visit_attribute<T: MutVisitor>(attr: &mut Attribute, vis: &mut T) {
- let Attribute { item: AttrItem { path, tokens }, id: _, style: _, is_sugared_doc: _, span }
- = attr;
+ let Attribute { id: _, style: _, path, tokens, is_sugared_doc: _, span } = attr;
vis.visit_path(path);
vis.visit_tts(tokens);
vis.visit_span(span);
@@ -682,10 +681,7 @@ pub fn noop_visit_interpolated<T: MutVisitor>(nt: &mut token::Nonterminal, vis:
token::NtIdent(ident, _is_raw) => vis.visit_ident(ident),
token::NtLifetime(ident) => vis.visit_ident(ident),
token::NtLiteral(expr) => vis.visit_expr(expr),
- token::NtMeta(AttrItem { path, tokens }) => {
- vis.visit_path(path);
- vis.visit_tts(tokens);
- }
+ token::NtMeta(meta) => vis.visit_meta_item(meta),
token::NtPath(path) => vis.visit_path(path),
token::NtTT(tt) => vis.visit_tt(tt),
token::NtImplItem(item) =>
diff --git a/src/libsyntax/parse/attr.rs b/src/libsyntax/parse/attr.rs
index e74f3045db8..44688bd36b5 100644
--- a/src/libsyntax/parse/attr.rs
+++ b/src/libsyntax/parse/attr.rs
@@ -90,7 +90,7 @@ impl<'a> Parser<'a> {
debug!("parse_attribute_with_inner_parse_policy: inner_parse_policy={:?} self.token={:?}",
inner_parse_policy,
self.token);
- let (span, item, style) = match self.token.kind {
+ let (span, path, tokens, style) = match self.token.kind {
token::Pound => {
let lo = self.token.span;
self.bump();
@@ -107,7 +107,7 @@ impl<'a> Parser<'a> {
};
self.expect(&token::OpenDelim(token::Bracket))?;
- let item = self.parse_attr_item()?;
+ let (path, tokens) = self.parse_meta_item_unrestricted()?;
self.expect(&token::CloseDelim(token::Bracket))?;
let hi = self.prev_span;
@@ -142,7 +142,7 @@ impl<'a> Parser<'a> {
}
}
- (attr_sp, item, style)
+ (attr_sp, path, tokens, style)
}
_ => {
let token_str = self.this_token_to_string();
@@ -151,9 +151,10 @@ impl<'a> Parser<'a> {
};
Ok(ast::Attribute {
- item,
id: attr::mk_attr_id(),
style,
+ path,
+ tokens,
is_sugared_doc: false,
span,
})
@@ -166,19 +167,19 @@ impl<'a> Parser<'a> {
/// PATH `[` TOKEN_STREAM `]`
/// PATH `{` TOKEN_STREAM `}`
/// PATH
- /// PATH `=` UNSUFFIXED_LIT
+ /// PATH `=` TOKEN_TREE
/// The delimiters or `=` are still put into the resulting token stream.
- pub fn parse_attr_item(&mut self) -> PResult<'a, ast::AttrItem> {
- let item = match self.token.kind {
+ pub fn parse_meta_item_unrestricted(&mut self) -> PResult<'a, (ast::Path, TokenStream)> {
+ let meta = match self.token.kind {
token::Interpolated(ref nt) => match **nt {
- Nonterminal::NtMeta(ref item) => Some(item.clone()),
+ Nonterminal::NtMeta(ref meta) => Some(meta.clone()),
_ => None,
},
_ => None,
};
- Ok(if let Some(item) = item {
+ Ok(if let Some(meta) = meta {
self.bump();
- item
+ (meta.path, meta.kind.tokens(meta.span))
} else {
let path = self.parse_path(PathStyle::Mod)?;
let tokens = if self.check(&token::OpenDelim(DelimToken::Paren)) ||
@@ -205,7 +206,7 @@ impl<'a> Parser<'a> {
} else {
TokenStream::empty()
};
- ast::AttrItem { path, tokens }
+ (path, tokens)
})
}
@@ -262,7 +263,7 @@ impl<'a> Parser<'a> {
/// Matches the following grammar (per RFC 1559).
///
- /// meta_item : PATH ( '=' UNSUFFIXED_LIT | '(' meta_item_inner? ')' )? ;
+ /// meta_item : IDENT ( '=' UNSUFFIXED_LIT | '(' meta_item_inner? ')' )? ;
/// meta_item_inner : (meta_item | UNSUFFIXED_LIT) (',' meta_item_inner)? ;
pub fn parse_meta_item(&mut self) -> PResult<'a, ast::MetaItem> {
let nt_meta = match self.token.kind {
@@ -273,14 +274,9 @@ impl<'a> Parser<'a> {
_ => None,
};
- if let Some(item) = nt_meta {
- return match item.meta(item.path.span) {
- Some(meta) => {
- self.bump();
- Ok(meta)
- }
- None => self.unexpected(),
- }
+ if let Some(meta) = nt_meta {
+ self.bump();
+ return Ok(meta);
}
let lo = self.token.span;
diff --git a/src/libsyntax/parse/parser/path.rs b/src/libsyntax/parse/parser/path.rs
index ca823991a2e..463ae9124ca 100644
--- a/src/libsyntax/parse/parser/path.rs
+++ b/src/libsyntax/parse/parser/path.rs
@@ -114,9 +114,9 @@ impl<'a> Parser<'a> {
pub fn parse_path_allowing_meta(&mut self, style: PathStyle) -> PResult<'a, Path> {
let meta_ident = match self.token.kind {
token::Interpolated(ref nt) => match **nt {
- token::NtMeta(ref item) => match item.tokens.is_empty() {
- true => Some(item.path.clone()),
- false => None,
+ token::NtMeta(ref meta) => match meta.kind {
+ ast::MetaItemKind::Word => Some(meta.path.clone()),
+ _ => None,
},
_ => None,
},
diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs
index fd78a2bd534..fe3b51aa246 100644
--- a/src/libsyntax/parse/token.rs
+++ b/src/libsyntax/parse/token.rs
@@ -687,7 +687,7 @@ pub enum Nonterminal {
NtLifetime(ast::Ident),
NtLiteral(P<ast::Expr>),
/// Stuff inside brackets for attributes
- NtMeta(ast::AttrItem),
+ NtMeta(ast::MetaItem),
NtPath(ast::Path),
NtVis(ast::Visibility),
NtTT(TokenTree),
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs
index 7d4ffe493d7..4b9c2d13f26 100644
--- a/src/libsyntax/print/pprust.rs
+++ b/src/libsyntax/print/pprust.rs
@@ -324,7 +324,7 @@ fn token_to_string_ext(token: &Token, convert_dollar_crate: bool) -> String {
crate fn nonterminal_to_string(nt: &Nonterminal) -> String {
match *nt {
token::NtExpr(ref e) => expr_to_string(e),
- token::NtMeta(ref e) => attr_item_to_string(e),
+ token::NtMeta(ref e) => meta_item_to_string(e),
token::NtTy(ref e) => ty_to_string(e),
token::NtPath(ref e) => path_to_string(e),
token::NtItem(ref e) => item_to_string(e),
@@ -412,8 +412,8 @@ pub fn meta_list_item_to_string(li: &ast::NestedMetaItem) -> String {
to_string(|s| s.print_meta_list_item(li))
}
-fn attr_item_to_string(ai: &ast::AttrItem) -> String {
- to_string(|s| s.print_attr_item(ai, ai.path.span))
+pub fn meta_item_to_string(mi: &ast::MetaItem) -> String {
+ to_string(|s| s.print_meta_item(mi))
}
pub fn attribute_to_string(attr: &ast::Attribute) -> String {
@@ -629,28 +629,24 @@ pub trait PrintState<'a>: std::ops::Deref<Target = pp::Printer> + std::ops::Dere
ast::AttrStyle::Inner => self.word("#!["),
ast::AttrStyle::Outer => self.word("#["),
}
- self.print_attr_item(&attr.item, attr.span);
- self.word("]");
- }
- }
-
- fn print_attr_item(&mut self, item: &ast::AttrItem, span: Span) {
- self.ibox(0);
- match item.tokens.trees().next() {
- Some(TokenTree::Delimited(_, delim, tts)) => {
- self.print_mac_common(
- Some(MacHeader::Path(&item.path)), false, None, delim, tts, true, span
- );
- }
- tree => {
- self.print_path(&item.path, false, 0);
- if tree.is_some() {
- self.space();
- self.print_tts(item.tokens.clone(), true);
+ self.ibox(0);
+ match attr.tokens.trees().next() {
+ Some(TokenTree::Delimited(_, delim, tts)) => {
+ self.print_mac_common(
+ Some(MacHeader::Path(&attr.path)), false, None, delim, tts, true, attr.span
+ );
+ }
+ tree => {
+ self.print_path(&attr.path, false, 0);
+ if tree.is_some() {
+ self.space();
+ self.print_tts(attr.tokens.clone(), true);
+ }
}
}
+ self.end();
+ self.word("]");
}
- self.end();
}
fn print_meta_list_item(&mut self, item: &ast::NestedMetaItem) {
diff --git a/src/libsyntax_ext/cmdline_attrs.rs b/src/libsyntax_ext/cmdline_attrs.rs
index 203c4a83489..bb8e3df3db9 100644
--- a/src/libsyntax_ext/cmdline_attrs.rs
+++ b/src/libsyntax_ext/cmdline_attrs.rs
@@ -1,6 +1,6 @@
//! Attributes injected into the crate root from command line using `-Z crate-attr`.
-use syntax::ast::{self, AttrItem, AttrStyle};
+use syntax::ast::{self, AttrStyle};
use syntax::attr::mk_attr;
use syntax::panictry;
use syntax::parse::{self, token, ParseSess};
@@ -15,7 +15,7 @@ pub fn inject(mut krate: ast::Crate, parse_sess: &ParseSess, attrs: &[String]) -
);
let start_span = parser.token.span;
- let AttrItem { path, tokens } = panictry!(parser.parse_attr_item());
+ let (path, tokens) = panictry!(parser.parse_meta_item_unrestricted());
let end_span = parser.token.span;
if parser.token != token::Eof {
parse_sess.span_diagnostic
diff --git a/src/test/ui/cfg/cfg_stmt_expr.rs b/src/test/ui/cfg/cfg_stmt_expr.rs
index 6381bb2d588..e466ad69f72 100644
--- a/src/test/ui/cfg/cfg_stmt_expr.rs
+++ b/src/test/ui/cfg/cfg_stmt_expr.rs
@@ -57,7 +57,7 @@ fn main() {
// check that macro expanded code works
macro_rules! if_cfg {
- ($cfg:meta? $ib:block else $eb:block) => {
+ ($cfg:meta $ib:block else $eb:block) => {
{
let r;
#[cfg($cfg)]
@@ -69,7 +69,7 @@ fn main() {
}
}
- let n = if_cfg!(unset? {
+ let n = if_cfg!(unset {
413
} else {
612
diff --git a/src/test/ui/macros/macro-first-set.rs b/src/test/ui/macros/macro-first-set.rs
index eb2504d4bfd..34529cdaa64 100644
--- a/src/test/ui/macros/macro-first-set.rs
+++ b/src/test/ui/macros/macro-first-set.rs
@@ -252,6 +252,12 @@ test_path!(::std);
test_path!(std::u8,);
test_path!(any, super, super::super::self::path, X<Y>::Z<'a, T=U>);
+macro_rules! test_meta_block {
+ ($($m:meta)* $b:block) => {};
+}
+
+test_meta_block!(windows {});
+
macro_rules! test_lifetime {
(1. $($l:lifetime)* $($b:block)*) => {};
(2. $($b:block)* $($l:lifetime)*) => {};
diff --git a/src/test/ui/macros/macro-meta-items-modern.rs b/src/test/ui/macros/macro-meta-items-modern.rs
deleted file mode 100644
index bc6938d4a6c..00000000000
--- a/src/test/ui/macros/macro-meta-items-modern.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-// check-pass
-
-macro_rules! check { ($meta:meta) => () }
-
-check!(meta(a b c d));
-check!(meta[a b c d]);
-check!(meta { a b c d });
-check!(meta);
-check!(meta = 0);
-
-fn main() {} this might take a while... |
It's not it, surprisingly enough(for me). (manually)Reverting that PR fails the same. (that is, applied this patch on top of rust commit 702b45e )
|
#64895? This PR adds |
I've reversed-applied the patch from https://github.com/rust-lang/rust/pull/64895.patch (aka reverted PR #64895 ) on top of rust 7130fc5 like this it passed!(failed later, on clippy_lints, but that's unrelated) Since rust got updated compared to my previous try, I'll re-apply this PR on top of what already worked just now to see if it indeed fails with it!
|
Minimized test-case: // compile-flags: -Z query-dep-graph --edition=2018
struct Body;
impl Body {
async fn next(&mut self) {
async { }.await
}
} |
I have a WIP fix: sinkuu@8f6e132 |
Rollup of 13 pull requests Successful merges: - #64581 (Fix unreachable_code warnings for try{} block ok-wrapped expressions) - #64850 (Remove inlines from DepNode code) - #64914 (regression test for 64453 borrow check error.) - #64922 (Use PlaceBuilder to avoid a lot of slice -> vec -> slice convertions) - #64948 (Improve sidebar styling to make its integration easier) - #64961 (Make comment about dummy type a bit more clear) - #64967 (Don't mark borrows of zero-sized arrays as indirectly mutable) - #64973 (Fix typo while setting `compile-flags` in test) - #64980 (Enable support for `IndirectlyMutableLocals` in `rustc_peek` ) - #64989 (Fix ICE #64964) - #64991 ([const-prop] Correctly handle locals that can't be propagated) - #64995 (Remove rustdoc warning) - #64997 (rustc book: nitpick SLP vectorization) Failed merges: r? @ghost
[beta] backport rollup This includes a bunch of PRs: * Fix redundant semicolon lint interaction with proc macro attributes #64387 * Upgrade async/await to "used" keywords. #64875 * syntax: fix dropping of attribute on first param of non-method assocated fn #64894 * async/await: improve not-send errors #64895 * Silence unreachable code lint from await desugaring #64930 * Always mark rust and rust-call abi's as unwind #65020 * Account for macro invocation in `let mut $pat` diagnostic. #65123 * Ensure that associated `async fn`s have unique fresh param names #65142 * Add troubleshooting section to PGO chapter in rustc book. #65402 * Upgrade GCC to 8.3.0, glibc to 1.17.0 and crosstool-ng to 1.24.0 for dist-armv7-linux #65302 * Optimize `try_expand_impl_trait_type` #65293 * use precalculated dominators in explain_borrow #65172 * Fix ICE #64964 #64989
[beta] backport rollup This includes a bunch of PRs: * Fix redundant semicolon lint interaction with proc macro attributes #64387 * Upgrade async/await to "used" keywords. #64875 * syntax: fix dropping of attribute on first param of non-method assocated fn #64894 * async/await: improve not-send errors #64895 * Silence unreachable code lint from await desugaring #64930 * Always mark rust and rust-call abi's as unwind #65020 * Account for macro invocation in `let mut $pat` diagnostic. #65123 * Ensure that associated `async fn`s have unique fresh param names #65142 * Add troubleshooting section to PGO chapter in rustc book. #65402 * Upgrade GCC to 8.3.0, glibc to 1.17.0 and crosstool-ng to 1.24.0 for dist-armv7-linux #65302 * Optimize `try_expand_impl_trait_type` #65293 * use precalculated dominators in explain_borrow #65172 * Fix ICE #64964 #64989 * [beta] Revert "Auto merge of #62948 - matklad:failable-file-loading, r=petro… #65273 * save-analysis: Don't ICE when resolving qualified type paths in struct members #65353 * save-analysis: Nest tables when processing impl block definitions #65511 * Avoid ICE when checking `Destination` of `break` inside a closure #65518 * Avoid ICE when adjusting bad self ty #65755 * workaround msys2 bug #65762
Hyper fails to compile on Rust master (702b45e)
The text was updated successfully, but these errors were encountered: