Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

broken mir while bootstrapping ra hir-ty #116736

Closed
matthiaskrgr opened this issue Oct 14, 2023 · 8 comments · Fixed by #119077
Closed

broken mir while bootstrapping ra hir-ty #116736

matthiaskrgr opened this issue Oct 14, 2023 · 8 comments · Fixed by #119077
Labels
-Zvalidate-mir Unstable option: MIR validation A-MIR Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html A-mir-opt Area: MIR optimizations A-mir-opt-inlining Area: MIR inlining C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@matthiaskrgr
Copy link
Member

Code

Code is inside the rustc repo from rust-analyzer hir-tycrate
RUSTC_BOOTSTRAP=1 RUSTFLAGS="-Zvalidate-mir" ./x.py build

Meta

rustc --version --verbose:

495c5ddcf7c480da6d53d10ba02d2de2515ef155

Error output

<output>
Backtrace

Building bootstrap
    Finished dev [unoptimized] target(s) in 0.03s
WARNING: The use of `changelog-seen` is deprecated. Please refer to `change-id` option in `config.example.toml` instead.
WARNING: The `change-id` is missing in the `config.toml`. This means that you will not be able to track the major changes made to the bootstrap configurations.
note: to silence this warning, add `change-id = 115898` at the top of `config.toml`
Building stage0 library artifacts (x86_64-unknown-linux-gnu)
    Finished release [optimized + debuginfo] target(s) in 0.11s
Building compiler artifacts (stage0 -> stage1, x86_64-unknown-linux-gnu)
    Finished release [optimized + debuginfo] target(s) in 0.18s
Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`)
Building stage1 library artifacts (x86_64-unknown-linux-gnu)
    Finished release [optimized + debuginfo] target(s) in 0.11s
Warning: no codegen-backends config matched the requested path to build a codegen backend. Help: add backend to codegen-backends in config.toml.
Building compiler artifacts (stage1 -> stage2, x86_64-unknown-linux-gnu)
    Finished release [optimized + debuginfo] target(s) in 0.18s
Building tool cargo (stage1 -> stage2, x86_64-unknown-linux-gnu)
    Finished release [optimized + debuginfo] target(s) in 0.14s
Building stage1 tool rls (x86_64-unknown-linux-gnu)
    Finished release [optimized + debuginfo] target(s) in 0.11s
Building stage1 tool rust-analyzer (x86_64-unknown-linux-gnu)
   Compiling hir-ty v0.0.0 (/home/matthias/vcs/github/rust/src/tools/rust-analyzer/crates/hir-ty)
error: internal compiler error: no errors encountered even though `delay_span_bug` issued

error: internal compiler error: broken MIR in Item(DefId(0:4250 ~ hir_ty[34fe]::mir::lower::lower_to_mir)) (after pass Inline) at bb63[0]:
                                use of local _73, which has no storage here
    --> crates/hir-ty/src/mir/lower.rs:2132:6
     |
2132 |     };
     |      ^
     |
note: delayed at compiler/rustc_const_eval/src/transform/validate.rs:310:22
         0: <rustc_errors::HandlerInner>::emit_diagnostic
                   at /home/matthias/vcs/github/rust/compiler/rustc_errors/src/lib.rs:1337:29
         1: <rustc_errors::HandlerInner>::delay_span_bug::<rustc_span::span_encoding::Span, alloc::string::String>
                   at /home/matthias/vcs/github/rust/compiler/rustc_errors/src/lib.rs:1621:9
         2: <rustc_errors::Handler>::delay_span_bug::<rustc_span::span_encoding::Span, alloc::string::String>
                   at /home/matthias/vcs/github/rust/compiler/rustc_errors/src/lib.rs:1007:9
         3: <rustc_const_eval::transform::validate::CfgChecker>::fail::<alloc::string::String>
                   at /home/matthias/vcs/github/rust/compiler/rustc_const_eval/src/transform/validate.rs:133:9
         4: <rustc_const_eval::transform::validate::CfgChecker as rustc_middle::mir::visit::Visitor>::visit_local
                   at /home/matthias/vcs/github/rust/compiler/rustc_const_eval/src/transform/validate.rs:310:17
         5: <rustc_const_eval::transform::validate::CfgChecker as rustc_middle::mir::visit::Visitor>::super_place
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/mir/visit.rs:1160:13
         6: <rustc_const_eval::transform::validate::CfgChecker as rustc_middle::mir::visit::Visitor>::visit_place
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/mir/visit.rs:182:17
         7: <rustc_const_eval::transform::validate::CfgChecker as rustc_middle::mir::visit::Visitor>::super_statement
         8: <rustc_const_eval::transform::validate::CfgChecker as rustc_middle::mir::visit::Visitor>::visit_statement
                   at /home/matthias/vcs/github/rust/compiler/rustc_const_eval/src/transform/validate.rs:391:9
         9: <rustc_const_eval::transform::validate::CfgChecker as rustc_middle::mir::visit::Visitor>::super_basic_block_data
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/mir/visit.rs:309:21
        10: <rustc_const_eval::transform::validate::CfgChecker as rustc_middle::mir::visit::Visitor>::visit_basic_block_data
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/mir/visit.rs:90:17
        11: <rustc_const_eval::transform::validate::CfgChecker as rustc_middle::mir::visit::Visitor>::super_body
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/mir/visit.rs:294:17
        12: <rustc_const_eval::transform::validate::CfgChecker as rustc_middle::mir::visit::Visitor>::visit_body
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/mir/visit.rs:1205:1
        13: <rustc_const_eval::transform::validate::Validator as rustc_middle::mir::MirPass>::run_pass
                   at /home/matthias/vcs/github/rust/compiler/rustc_const_eval/src/transform/validate.rs:91:21
        14: rustc_mir_transform::pass_manager::validate_body
                   at /home/matthias/vcs/github/rust/compiler/rustc_mir_transform/src/pass_manager.rs:164:5
        15: rustc_mir_transform::pass_manager::run_passes_inner
                   at /home/matthias/vcs/github/rust/compiler/rustc_mir_transform/src/pass_manager.rs:139:17
        16: rustc_mir_transform::pass_manager::run_passes
                   at /home/matthias/vcs/github/rust/compiler/rustc_mir_transform/src/pass_manager.rs:83:5
        17: rustc_mir_transform::run_optimization_passes
                   at /home/matthias/vcs/github/rust/compiler/rustc_mir_transform/src/lib.rs:527:5
        18: rustc_mir_transform::inner_optimized_mir
                   at /home/matthias/vcs/github/rust/compiler/rustc_mir_transform/src/lib.rs:623:5
        19: rustc_mir_transform::optimized_mir
                   at /home/matthias/vcs/github/rust/compiler/rustc_mir_transform/src/lib.rs:585:21
        20: rustc_query_impl::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_impl/src/plumbing.rs:585:47
        21: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_impl/src/plumbing.rs:509:18
        22: rustc_query_impl::query_impl::optimized_mir::dynamic_query::{closure#2}
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_impl/src/plumbing.rs:581:25
        23: <rustc_query_impl::query_impl::optimized_mir::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::DefId)>>::call_once
                   at /home/matthias/vcs/github/rust/library/core/src/ops/function.rs:250:5
        24: <rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false> as rustc_query_system::query::config::QueryConfig<rustc_query_impl::plumbing::QueryCtxt>>::compute
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_impl/src/lib.rs:119:9
        25: rustc_query_system::query::plumbing::execute_job_non_incr::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_system/src/query/plumbing.rs:456:72
        26: rustc_middle::ty::context::tls::enter_context::<rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:82:9
        27: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::try_with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
                   at /home/matthias/vcs/github/rust/library/std/src/thread/local.rs:270:16
        28: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
                   at /home/matthias/vcs/github/rust/library/std/src/thread/local.rs:246:9
        29: rustc_middle::ty::context::tls::enter_context::<rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:79:9
        30: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_impl/src/plumbing.rs:151:13
        31: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:133:9
        32: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:111:36
        33: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:100:18
        34: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:111:5
        35: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:124:5
        36: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_impl/src/plumbing.rs:136:9
        37: rustc_query_system::query::plumbing::execute_job_non_incr::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_system/src/query/plumbing.rs:456:18
        38: rustc_query_system::query::plumbing::execute_job::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_system/src/query/plumbing.rs:389:9
        39: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_system/src/query/plumbing.rs:332:13
        40: rustc_query_system::query::plumbing::get_query_non_incr::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_system/src/query/plumbing.rs:786:32
        41: stacker::maybe_grow::<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::get_query_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>
                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
        42: rustc_data_structures::stack::ensure_sufficient_stack::<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::get_query_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>
                   at /home/matthias/vcs/github/rust/compiler/rustc_data_structures/src/stack.rs:17:5
        43: rustc_query_system::query::plumbing::get_query_non_incr::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_system/src/query/plumbing.rs:786:5
        44: rustc_query_impl::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_impl/src/plumbing.rs:559:26
        45: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 8]>>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/query/plumbing.rs:156:17
        46: <rustc_middle::query::plumbing::TyCtxtAt>::optimized_mir::<rustc_span::def_id::LocalDefId>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/query/plumbing.rs:386:31
        47: <rustc_middle::ty::context::TyCtxt>::optimized_mir::<rustc_span::def_id::LocalDefId>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/query/plumbing.rs:377:17
        48: rustc_mir_transform::deduce_param_attrs::deduced_param_attrs
                   at /home/matthias/vcs/github/rust/compiler/rustc_mir_transform/src/deduce_param_attrs.rs:189:29
        49: rustc_query_impl::query_impl::deduced_param_attrs::dynamic_query::{closure#2}::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_impl/src/plumbing.rs:585:47
        50: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::deduced_param_attrs::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_impl/src/plumbing.rs:509:18
        51: rustc_query_impl::query_impl::deduced_param_attrs::dynamic_query::{closure#2}
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_impl/src/plumbing.rs:581:25
        52: <rustc_query_impl::query_impl::deduced_param_attrs::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::DefId)>>::call_once
                   at /home/matthias/vcs/github/rust/library/core/src/ops/function.rs:250:5
        53: <rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false> as rustc_query_system::query::config::QueryConfig<rustc_query_impl::plumbing::QueryCtxt>>::compute
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_impl/src/lib.rs:119:9
        54: rustc_query_system::query::plumbing::execute_job_non_incr::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_system/src/query/plumbing.rs:456:72
        55: rustc_middle::ty::context::tls::enter_context::<rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:82:9
        56: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::try_with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>
                   at /home/matthias/vcs/github/rust/library/std/src/thread/local.rs:270:16
        57: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>
                   at /home/matthias/vcs/github/rust/library/std/src/thread/local.rs:246:9
        58: rustc_middle::ty::context::tls::enter_context::<rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:79:9
        59: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<rustc_middle::query::erase::Erased<[u8; 16]>, rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_impl/src/plumbing.rs:151:13
        60: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<rustc_middle::query::erase::Erased<[u8; 16]>, rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:133:9
        61: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<rustc_middle::query::erase::Erased<[u8; 16]>, rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:111:36
        62: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_context<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<rustc_middle::query::erase::Erased<[u8; 16]>, rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:100:18
        63: rustc_middle::ty::context::tls::with_context::<rustc_middle::ty::context::tls::with_related_context<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<rustc_middle::query::erase::Erased<[u8; 16]>, rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:111:5
        64: rustc_middle::ty::context::tls::with_related_context::<<rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query<rustc_middle::query::erase::Erased<[u8; 16]>, rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 16]>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:124:5
        65: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<rustc_middle::query::erase::Erased<[u8; 16]>, rustc_query_system::query::plumbing::execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_impl/src/plumbing.rs:136:9
        66: rustc_query_system::query::plumbing::execute_job_non_incr::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_system/src/query/plumbing.rs:456:18
        67: rustc_query_system::query::plumbing::execute_job::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_system/src/query/plumbing.rs:389:9
        68: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_system/src/query/plumbing.rs:332:13
        69: rustc_query_system::query::plumbing::get_query_non_incr::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_system/src/query/plumbing.rs:786:32
        70: stacker::maybe_grow::<rustc_middle::query::erase::Erased<[u8; 16]>, rustc_query_system::query::plumbing::get_query_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>
                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
        71: rustc_data_structures::stack::ensure_sufficient_stack::<rustc_middle::query::erase::Erased<[u8; 16]>, rustc_query_system::query::plumbing::get_query_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>
                   at /home/matthias/vcs/github/rust/compiler/rustc_data_structures/src/stack.rs:17:5
        72: rustc_query_system::query::plumbing::get_query_non_incr::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_system/src/query/plumbing.rs:786:5
        73: rustc_query_impl::query_impl::deduced_param_attrs::get_query_non_incr::__rust_end_short_backtrace
                   at /home/matthias/vcs/github/rust/compiler/rustc_query_impl/src/plumbing.rs:559:26
        74: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 16]>>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/query/plumbing.rs:156:17
        75: <rustc_middle::query::plumbing::TyCtxtAt>::deduced_param_attrs::<rustc_span::def_id::DefId>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/query/plumbing.rs:386:31
        76: <rustc_middle::ty::context::TyCtxt>::deduced_param_attrs::<rustc_span::def_id::DefId>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/query/plumbing.rs:377:17
        77: <rustc_metadata::rmeta::encoder::EncodeContext>::encode_mir
                   at /home/matthias/vcs/github/rust/compiler/rustc_metadata/src/rmeta/encoder.rs:1666:25
        78: <rustc_metadata::rmeta::encoder::EncodeContext>::encode_crate_root::{closure#15}
                   at /home/matthias/vcs/github/rust/compiler/rustc_metadata/src/rmeta/encoder.rs:614:29
        79: <rustc_metadata::rmeta::encoder::EncodeContext>::encode_crate_root
                   at /home/matthias/vcs/github/rust/compiler/rustc_metadata/src/rmeta/encoder.rs:575:27
        80: rustc_metadata::rmeta::encoder::encode_metadata_impl
                   at /home/matthias/vcs/github/rust/compiler/rustc_metadata/src/rmeta/encoder.rs:2235:16
        81: std::panicking::try::do_call::<core::panic::unwind_safe::AssertUnwindSafe<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}>, ()>
                   at /home/matthias/vcs/github/rust/library/std/src/panicking.rs:504:40
        82: std::panicking::try::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}>>
                   at /home/matthias/vcs/github/rust/library/std/src/panicking.rs:468:19
        83: std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}>, ()>
                   at /home/matthias/vcs/github/rust/library/std/src/panic.rs:142:14
        84: <rustc_data_structures::sync::parallel::ParallelGuard>::run::<(), rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}>
                   at /home/matthias/vcs/github/rust/compiler/rustc_data_structures/src/sync/parallel.rs:26:9
        85: rustc_data_structures::sync::parallel::disabled::join::<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}, (), ()>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_data_structures/src/sync/parallel.rs:65:21
        86: rustc_data_structures::sync::parallel::parallel_guard::<(core::option::Option<()>, core::option::Option<()>), rustc_data_structures::sync::parallel::disabled::join<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}, (), ()>::{closure#0}>
                   at /home/matthias/vcs/github/rust/compiler/rustc_data_structures/src/sync/parallel.rs:39:15
        87: rustc_data_structures::sync::parallel::disabled::join::<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}, (), ()>
                   at /home/matthias/vcs/github/rust/compiler/rustc_data_structures/src/sync/parallel.rs:64:22
        88: rustc_metadata::rmeta::encoder::encode_metadata
                   at /home/matthias/vcs/github/rust/compiler/rustc_metadata/src/rmeta/encoder.rs:2184:5
        89: rustc_metadata::fs::encode_and_write_metadata
                   at /home/matthias/vcs/github/rust/compiler/rustc_metadata/src/fs.rs:65:13
        90: rustc_interface::passes::start_codegen
                   at /home/matthias/vcs/github/rust/compiler/rustc_interface/src/passes.rs:954:44
        91: <rustc_interface::queries::Queries>::ongoing_codegen::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_interface/src/queries.rs:205:16
        92: <rustc_middle::ty::context::GlobalCtxt>::enter::<<rustc_interface::queries::Queries>::ongoing_codegen::{closure#0}, core::result::Result<alloc::boxed::Box<dyn core::any::Any>, rustc_span::ErrorGuaranteed>>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context.rs:598:37
        93: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::ty::context::GlobalCtxt>::enter<<rustc_interface::queries::Queries>::ongoing_codegen::{closure#0}, core::result::Result<alloc::boxed::Box<dyn core::any::Any>, rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<alloc::boxed::Box<dyn core::any::Any>, rustc_span::ErrorGuaranteed>>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:82:9
        94: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::try_with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<<rustc_interface::queries::Queries>::ongoing_codegen::{closure#0}, core::result::Result<alloc::boxed::Box<dyn core::any::Any>, rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<alloc::boxed::Box<dyn core::any::Any>, rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<alloc::boxed::Box<dyn core::any::Any>, rustc_span::ErrorGuaranteed>>
                   at /home/matthias/vcs/github/rust/library/std/src/thread/local.rs:270:16
        95: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<<rustc_middle::ty::context::GlobalCtxt>::enter<<rustc_interface::queries::Queries>::ongoing_codegen::{closure#0}, core::result::Result<alloc::boxed::Box<dyn core::any::Any>, rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<alloc::boxed::Box<dyn core::any::Any>, rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<alloc::boxed::Box<dyn core::any::Any>, rustc_span::ErrorGuaranteed>>
                   at /home/matthias/vcs/github/rust/library/std/src/thread/local.rs:246:9
        96: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::ty::context::GlobalCtxt>::enter<<rustc_interface::queries::Queries>::ongoing_codegen::{closure#0}, core::result::Result<alloc::boxed::Box<dyn core::any::Any>, rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<alloc::boxed::Box<dyn core::any::Any>, rustc_span::ErrorGuaranteed>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context/tls.rs:79:9
        97: <rustc_middle::ty::context::GlobalCtxt>::enter::<<rustc_interface::queries::Queries>::ongoing_codegen::{closure#0}, core::result::Result<alloc::boxed::Box<dyn core::any::Any>, rustc_span::ErrorGuaranteed>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_middle/src/ty/context.rs:598:9
        98: <rustc_interface::queries::QueryResult<&rustc_middle::ty::context::GlobalCtxt>>::enter::<core::result::Result<alloc::boxed::Box<dyn core::any::Any>, rustc_span::ErrorGuaranteed>, <rustc_interface::queries::Queries>::ongoing_codegen::{closure#0}>
                   at /home/matthias/vcs/github/rust/compiler/rustc_interface/src/queries.rs:68:9
        99: <rustc_interface::queries::Queries>::ongoing_codegen
                   at /home/matthias/vcs/github/rust/compiler/rustc_interface/src/queries.rs:194:9
       100: rustc_driver_impl::run_compiler::{closure#1}::{closure#2}
                   at /home/matthias/vcs/github/rust/compiler/rustc_driver_impl/src/lib.rs:455:35
       101: <rustc_interface::interface::Compiler>::enter::<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>
                   at /home/matthias/vcs/github/rust/compiler/rustc_interface/src/queries.rs:332:19
       102: rustc_driver_impl::run_compiler::{closure#1}
                   at /home/matthias/vcs/github/rust/compiler/rustc_driver_impl/src/lib.rs:390:22
       103: rustc_interface::interface::run_compiler::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_interface/src/interface.rs:346:21
       104: rustc_span::set_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
                   at /home/matthias/vcs/github/rust/compiler/rustc_span/src/lib.rs:1059:5
       105: rustc_interface::interface::run_compiler::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_interface/src/interface.rs:340:13
       106: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scoped-tls-1.0.1/src/lib.rs:137:9
       107: rustc_span::create_session_globals_then::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}>
                   at /home/matthias/vcs/github/rust/compiler/rustc_span/src/lib.rs:125:5
       108: rustc_interface::util::run_in_thread_with_globals::<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}
                   at /home/matthias/vcs/github/rust/compiler/rustc_interface/src/util.rs:163:38
       109: std::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                   at /home/matthias/vcs/github/rust/library/std/src/sys_common/backtrace.rs:154:18
       110: std::panicking::try::do_call::<core::panic::unwind_safe::AssertUnwindSafe<<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#1}::{closure#0}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                   at /home/matthias/vcs/github/rust/library/std/src/panicking.rs:504:40
       111: std::panicking::try::<core::result::Result<(), rustc_span::ErrorGuaranteed>, core::panic::unwind_safe::AssertUnwindSafe<<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#1}::{closure#0}>>
                   at /home/matthias/vcs/github/rust/library/std/src/panicking.rs:468:19
       112: std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#1}::{closure#0}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                   at /home/matthias/vcs/github/rust/library/std/src/panic.rs:142:14
       113: <std::thread::Builder>::spawn_unchecked_::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#1}
                   at /home/matthias/vcs/github/rust/library/std/src/thread/mod.rs:528:30
       114: <<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
                   at /home/matthias/vcs/github/rust/library/core/src/ops/function.rs:250:5
       115: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
                   at /home/matthias/vcs/github/rust/library/alloc/src/boxed.rs:2007:9
       116: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
                   at /home/matthias/vcs/github/rust/library/alloc/src/boxed.rs:2007:9
       117: std::sys::unix::thread::Thread::new::thread_start
                   at /home/matthias/vcs/github/rust/library/std/src/sys/unix/thread.rs:108:17
       118: <unknown>
       119: <unknown>
    --> crates/hir-ty/src/mir/lower.rs:2132:6
     |
2132 |     };
     |      ^

  <snip>
note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: please attach the file at `/home/matthias/vcs/github/rust/src/tools/rust-analyzer/rustc-ice-2023-10-14T16:58:47.307861343Z-2158814.txt` to your bug report

note: compiler flags: --crate-type rlib -C opt-level=3 -C embed-bitcode=no -C codegen-units=16 -C debuginfo=2 -C overflow-checks=on -Z unstable-options -Z validate-mir -C symbol-mangling-version=v0 -Z unstable-options -Z macro-backtrace -C link-args=-Wl,-z,origin -C link-args=-Wl,-rpath,$ORIGIN/../lib -C split-debuginfo=off -Z binary-dep-depinfo -Z tls-model=initial-exec -Z allow-features=binary-dep-depinfo,proc_macro_span,proc_macro_span_shrink,proc_macro_diagnostic,proc_macro_internals,proc_macro_diagnostic,proc_macro_span,proc_macro_span_shrink

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
end of query stack
error: could not compile `hir-ty` (lib)
Build completed unsuccessfully in 0:01:11

@matthiaskrgr matthiaskrgr added I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. C-bug Category: This is a bug. labels Oct 14, 2023
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Oct 14, 2023
@matthiaskrgr
Copy link
Member Author

ice.log

@matthiaskrgr
Copy link
Member Author

Weird, so as far as I understand, we use beta to build stage 1 and then use stage 1 to build stage 2 and then use stage 2 or 1 to build ra (in bootstrap) which ICEs, but i was not able to reproduce this by compiling hir-ty inside the ra git repo directly with nightly/master :/

@albertlarsan68
Copy link
Member

Maybe the fail will manifest tomorrow ?

@matthiaskrgr
Copy link
Member Author

matthiaskrgr commented Oct 15, 2023

Hmm I am able to reproduce this in the rust-analyzer repo with -Zmir-opt-level=5 or 4, I thought that "3" was the default when doing a --release build but perhaps I'm wrong there...

@matthiaskrgr
Copy link
Member Author

I tried to minimize with cargo-minimize but it threw an error while doing so :/

@Noratrieb
Copy link
Member

I tried to minimize with cargo-minimize but it threw an error while doing so :/

a panic? if so you can probably fix it by staring very closely at the cursed "path" code from cargo-minimize and figuring out which AST nodes aren't yet counted and leads to duplicate paths.

@matthiaskrgr
Copy link
Member Author

No panic (/stacktrace) by c-minimize, just an error.
I tried to cargo build the remaining code but there were errors, maybe it failed to apply a rustc suggestion

@saethlin saethlin removed the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Oct 29, 2023
@tmiasko tmiasko added A-mir-opt Area: MIR optimizations A-mir-opt-inlining Area: MIR inlining A-MIR Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html labels Nov 14, 2023
@tmiasko
Copy link
Contributor

tmiasko commented Nov 15, 2023

Looks like a duplicate of #104736.

@tmiasko tmiasko added the -Zvalidate-mir Unstable option: MIR validation label Dec 17, 2023
@bors bors closed this as completed in 7dd0955 Dec 23, 2023
rust-timer added a commit to rust-lang-ci/rust that referenced this issue Dec 23, 2023
Rollup merge of rust-lang#119077 - tmiasko:lint, r=cjgillot

Separate MIR lints from validation

Add a MIR lint pass, enabled with -Zlint-mir, which identifies undefined or
likely erroneous behaviour.

The initial implementation mostly migrates existing checks of this nature from
MIR validator, where they did not belong (those checks have false positives and
there is nothing inherently invalid about MIR with undefined behaviour).

Fixes rust-lang#104736
Fixes rust-lang#104843
Fixes rust-lang#116079
Fixes rust-lang#116736
Fixes rust-lang#118990
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-Zvalidate-mir Unstable option: MIR validation A-MIR Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html A-mir-opt Area: MIR optimizations A-mir-opt-inlining Area: MIR inlining C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants