-
Notifications
You must be signed in to change notification settings - Fork 13.3k
ICE while compiling hyper (StableHasher: unexpected region '_#0r
)
#64964
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
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: