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

ICE regression when removing ProjectionElem::Subtype #118478

Open
ouz-a opened this issue Nov 30, 2023 · 0 comments · May be fixed by #133258
Open

ICE regression when removing ProjectionElem::Subtype #118478

ouz-a opened this issue Nov 30, 2023 · 0 comments · May be fixed by #133258
Labels
C-bug Category: This is a bug. E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been 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.

Comments

@ouz-a
Copy link
Contributor

ouz-a commented Nov 30, 2023

While removing ProjectionElem::Subtype we got ICE in one of the tests
https://github.com/rust-lang/rust/blob/cd40abae3619e82b6075dff3763615652ebad6a4/tests/ui/type-alias-impl-trait/normalize-alias-type.rs, this is a tracker issue for that, this ICE currently only happens #118477 but once it gets merged it will likely affect nightly users.

cc @lcnr

Code

// compile-flags: -Z mir-opt-level=3
#![feature(type_alias_impl_trait)]
#![crate_type = "lib"]
pub trait Tr {
    fn get(&self) -> u32;
}

impl Tr for (u32,) {
    #[inline]
    fn get(&self) -> u32 { self.0 }
}

pub fn tr1() -> impl Tr {
    (32,)
}

pub fn tr2() -> impl Tr {
    struct Inner {
        x: X,
    }
    type X = impl Tr;
    impl Tr for Inner {
        fn get(&self) -> u32 {
            self.x.get()
        }
    }

    Inner {
        x: tr1(),
    }
}

Error output

error: internal compiler error: no errors encountered even though `delay_span_bug` issued

error: internal compiler error: broken MIR in Item(DefId(0:13 ~ tabula[7834]::tr2::{impl#0}::get)) (after phase change to runtime-optimized) at bb0[1]:
                                Alias(Opaque, AliasTy { args: [], def_id: DefId(0:18 ~ tabula[7834]::tr2::X::{opaque#0}) }) does not have fields
 --> tabula.rs:9:28
  |
9 |     fn get(&self) -> u32 { self.0 }
  |                            ^^^^^^
  |
Backtrace

delayed span bug: broken MIR in Item(DefId(0:13 ~ tabula[7834]::tr2::{impl#0}::get)) (after phase change to runtime-optimized) at bb0[1]:
Alias(Opaque, AliasTy { args: [], def_id: DefId(0:18 ~ tabula[7834]::tr2::X::{opaque#0}) }) does not have fields
   0: <rustc_errors::HandlerInner>::emit_diagnostic
             at ./compiler/rustc_errors/src/lib.rs:1338:29
   1: <rustc_errors::HandlerInner>::delay_span_bug::<rustc_span::span_encoding::Span, alloc::string::String>
             at ./compiler/rustc_errors/src/lib.rs:1622:9
   2: <rustc_errors::Handler>::delay_span_bug::<rustc_span::span_encoding::Span, alloc::string::String>
             at ./compiler/rustc_errors/src/lib.rs:1008:9
   3: <rustc_const_eval::transform::validate::CfgChecker>::fail::<alloc::string::String>
             at ./compiler/rustc_const_eval/src/transform/validate.rs:131:9
   4: <rustc_const_eval::transform::validate::Validator as rustc_middle::mir::MirPass>::run_pass
             at ./compiler/rustc_const_eval/src/transform/validate.rs:94:13
   5: rustc_mir_transform::pass_manager::validate_body
             at ./compiler/rustc_mir_transform/src/pass_manager.rs:173:5
   6: rustc_mir_transform::pass_manager::run_passes_inner
             at ./compiler/rustc_mir_transform/src/pass_manager.rs:165:13
   7: rustc_mir_transform::pass_manager::run_passes
             at ./compiler/rustc_mir_transform/src/pass_manager.rs:83:5
   8: rustc_mir_transform::run_optimization_passes
             at ./compiler/rustc_mir_transform/src/lib.rs:560:5
   9: rustc_mir_transform::inner_optimized_mir
             at ./compiler/rustc_mir_transform/src/lib.rs:659:5
  10: rustc_mir_transform::optimized_mir
             at ./compiler/rustc_mir_transform/src/lib.rs:621:21
  11: rustc_query_impl::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}
             at ./compiler/rustc_query_impl/src/plumbing.rs:586:47
  12: 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 ./compiler/rustc_query_impl/src/plumbing.rs:510:18
  13: rustc_query_impl::query_impl::optimized_mir::dynamic_query::{closure#2}
             at ./compiler/rustc_query_impl/src/plumbing.rs:582:25
  14: <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 ./library/core/src/ops/function.rs:250:5
  15: <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 ./compiler/rustc_query_impl/src/lib.rs:119:9
  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; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
             at ./compiler/rustc_query_system/src/query/plumbing.rs:464:72
  17: 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 ./compiler/rustc_middle/src/ty/context/tls.rs:82:9
  18: <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 ./library/std/src/thread/local.rs:270:16
  19: <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 ./library/std/src/thread/local.rs:246:9
  20: 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 ./compiler/rustc_middle/src/ty/context/tls.rs:79:5
  21: <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 ./compiler/rustc_query_impl/src/plumbing.rs:151:13
  22: 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 ./compiler/rustc_middle/src/ty/context/tls.rs:133:9
  23: 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 ./compiler/rustc_middle/src/ty/context/tls.rs:111:36
  24: 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 ./compiler/rustc_middle/src/ty/context/tls.rs:100:18
  25: 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 ./compiler/rustc_middle/src/ty/context/tls.rs:111:5
  26: 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 ./compiler/rustc_middle/src/ty/context/tls.rs:124:5
  27: <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 ./compiler/rustc_query_impl/src/plumbing.rs:136:9
  28: 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 ./compiler/rustc_query_system/src/query/plumbing.rs:464:18
  29: 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 ./compiler/rustc_query_system/src/query/plumbing.rs:397:9
  30: 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 ./compiler/rustc_query_system/src/query/plumbing.rs:340:13
  31: 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 ./compiler/rustc_query_system/src/query/plumbing.rs:796:32
  32: 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/ouz/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
  33: 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 ./compiler/rustc_data_structures/src/stack.rs:17:5
  34: 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 ./compiler/rustc_query_system/src/query/plumbing.rs:796:5
  35: rustc_query_impl::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
             at ./compiler/rustc_query_impl/src/plumbing.rs:560:26
  36: 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 ./compiler/rustc_middle/src/query/plumbing.rs:156:17
  37: <rustc_middle::query::plumbing::TyCtxtAt>::optimized_mir::<rustc_span::def_id::LocalDefId>
             at ./compiler/rustc_middle/src/query/plumbing.rs:438:31
  38: <rustc_middle::ty::context::TyCtxt>::optimized_mir::<rustc_span::def_id::LocalDefId>
             at ./compiler/rustc_middle/src/query/plumbing.rs:429:17
  39: rustc_mir_transform::cross_crate_inline::cross_crate_inlinable
             at ./compiler/rustc_mir_transform/src/cross_crate_inline.rs:64:15
  40: rustc_query_impl::query_impl::cross_crate_inlinable::dynamic_query::{closure#2}::{closure#0}
             at ./compiler/rustc_query_impl/src/plumbing.rs:586:47
  41: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::cross_crate_inlinable::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
             at ./compiler/rustc_query_impl/src/plumbing.rs:510:18
  42: rustc_query_impl::query_impl::cross_crate_inlinable::dynamic_query::{closure#2}
             at ./compiler/rustc_query_impl/src/plumbing.rs:582:25
  43: <rustc_query_impl::query_impl::cross_crate_inlinable::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, rustc_span::def_id::DefId)>>::call_once
             at ./library/core/src/ops/function.rs:250:5
  44: <rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false> as rustc_query_system::query::config::QueryConfig<rustc_query_impl::plumbing::QueryCtxt>>::compute
             at ./compiler/rustc_query_impl/src/lib.rs:119:9
  45: 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
             at ./compiler/rustc_query_system/src/query/plumbing.rs:464:72
  46: 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}
             at ./compiler/rustc_middle/src/ty/context/tls.rs:82:9
  47: <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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
             at ./library/std/src/thread/local.rs:270:16
  48: <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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
             at ./library/std/src/thread/local.rs:246:9
  49: 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
             at ./compiler/rustc_middle/src/ty/context/tls.rs:79:5
  50: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<rustc_middle::query::erase::Erased<[u8; 1]>, 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}
             at ./compiler/rustc_query_impl/src/plumbing.rs:151:13
  51: 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; 1]>, 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}
             at ./compiler/rustc_middle/src/ty/context/tls.rs:133:9
  52: 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; 1]>, 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}
             at ./compiler/rustc_middle/src/ty/context/tls.rs:111:36
  53: 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; 1]>, 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
             at ./compiler/rustc_middle/src/ty/context/tls.rs:100:18
  54: 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; 1]>, 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
             at ./compiler/rustc_middle/src/ty/context/tls.rs:111:5
  55: 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; 1]>, 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
             at ./compiler/rustc_middle/src/ty/context/tls.rs:124:5
  56: <rustc_query_impl::plumbing::QueryCtxt as rustc_query_system::query::QueryContext>::start_query::<rustc_middle::query::erase::Erased<[u8; 1]>, 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>
             at ./compiler/rustc_query_impl/src/plumbing.rs:136:9
  57: 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
             at ./compiler/rustc_query_system/src/query/plumbing.rs:464:18
  58: 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
             at ./compiler/rustc_query_system/src/query/plumbing.rs:397:9
  59: 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
             at ./compiler/rustc_query_system/src/query/plumbing.rs:340:13
  60: 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
             at ./compiler/rustc_query_system/src/query/plumbing.rs:796:32
  61: stacker::maybe_grow::<rustc_middle::query::erase::Erased<[u8; 1]>, 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>
             at /home/ouz/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
  62: rustc_data_structures::stack::ensure_sufficient_stack::<rustc_middle::query::erase::Erased<[u8; 1]>, 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>
             at ./compiler/rustc_data_structures/src/stack.rs:17:5
  63: 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; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
             at ./compiler/rustc_query_system/src/query/plumbing.rs:796:5
  64: rustc_query_impl::query_impl::cross_crate_inlinable::get_query_non_incr::__rust_end_short_backtrace
             at ./compiler/rustc_query_impl/src/plumbing.rs:560:26
  65: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::DefaultCache<rustc_span::def_id::DefId, rustc_middle::query::erase::Erased<[u8; 1]>>>
             at ./compiler/rustc_middle/src/query/plumbing.rs:156:17
  66: <rustc_middle::query::plumbing::TyCtxtAt>::cross_crate_inlinable::<rustc_span::def_id::DefId>
             at ./compiler/rustc_middle/src/query/plumbing.rs:438:31
  67: <rustc_middle::ty::context::TyCtxt>::cross_crate_inlinable::<rustc_span::def_id::DefId>
             at ./compiler/rustc_middle/src/query/plumbing.rs:429:17
  68: rustc_passes::reachable::item_might_be_inlined
             at ./compiler/rustc_passes/src/reachable.rs:23:12
  69: <rustc_passes::reachable::ReachableContext>::propagate_node
             at ./compiler/rustc_passes/src/reachable.rs:241:24
  70: <rustc_passes::reachable::ReachableContext>::propagate
             at ./compiler/rustc_passes/src/reachable.rs:150:17
  71: rustc_passes::reachable::reachable_set
             at ./compiler/rustc_passes/src/reachable.rs:377:5
  72: rustc_query_impl::query_impl::reachable_set::dynamic_query::{closure#2}::{closure#0}
             at ./compiler/rustc_query_impl/src/plumbing.rs:586:47
  73: rustc_query_impl::plumbing::__rust_begin_short_backtrace::<rustc_query_impl::query_impl::reachable_set::dynamic_query::{closure#2}::{closure#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
             at ./compiler/rustc_query_impl/src/plumbing.rs:510:18
  74: rustc_query_impl::query_impl::reachable_set::dynamic_query::{closure#2}
             at ./compiler/rustc_query_impl/src/plumbing.rs:582:25
  75: <rustc_query_impl::query_impl::reachable_set::dynamic_query::{closure#2} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt, ())>>::call_once
             at ./library/core/src/ops/function.rs:250:5
  76: <rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false> as rustc_query_system::query::config::QueryConfig<rustc_query_impl::plumbing::QueryCtxt>>::compute
             at ./compiler/rustc_query_impl/src/lib.rs:119:9
  77: rustc_query_system::query::plumbing::execute_job_non_incr::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
             at ./compiler/rustc_query_system/src/query/plumbing.rs:464:72
  78: 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::SingleCache<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 ./compiler/rustc_middle/src/ty/context/tls.rs:82:9
  79: <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::SingleCache<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 ./library/std/src/thread/local.rs:270:16
  80: <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::SingleCache<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 ./library/std/src/thread/local.rs:246:9
  81: 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::SingleCache<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 ./compiler/rustc_middle/src/ty/context/tls.rs:79:5
  82: <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::SingleCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>::{closure#0}
             at ./compiler/rustc_query_impl/src/plumbing.rs:151:13
  83: 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::SingleCache<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 ./compiler/rustc_middle/src/ty/context/tls.rs:133:9
  84: 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::SingleCache<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 ./compiler/rustc_middle/src/ty/context/tls.rs:111:36
  85: 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::SingleCache<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 ./compiler/rustc_middle/src/ty/context/tls.rs:100:18
  86: 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::SingleCache<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 ./compiler/rustc_middle/src/ty/context/tls.rs:111:5
  87: 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::SingleCache<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 ./compiler/rustc_middle/src/ty/context/tls.rs:124:5
  88: <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::SingleCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>
             at ./compiler/rustc_query_impl/src/plumbing.rs:136:9
  89: rustc_query_system::query::plumbing::execute_job_non_incr::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
             at ./compiler/rustc_query_system/src/query/plumbing.rs:464:18
  90: rustc_query_system::query::plumbing::execute_job::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
             at ./compiler/rustc_query_system/src/query/plumbing.rs:397:9
  91: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
             at ./compiler/rustc_query_system/src/query/plumbing.rs:340:13
  92: rustc_query_system::query::plumbing::get_query_non_incr::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}
             at ./compiler/rustc_query_system/src/query/plumbing.rs:796:32
  93: 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::SingleCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>
             at /home/ouz/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
  94: 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::SingleCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>::{closure#0}>
             at ./compiler/rustc_data_structures/src/stack.rs:17:5
  95: rustc_query_system::query::plumbing::get_query_non_incr::<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
             at ./compiler/rustc_query_system/src/query/plumbing.rs:796:5
  96: rustc_query_impl::query_impl::reachable_set::get_query_non_incr::__rust_end_short_backtrace
             at ./compiler/rustc_query_impl/src/plumbing.rs:560:26
  97: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 8]>>>
             at ./compiler/rustc_middle/src/query/plumbing.rs:156:17
  98: <rustc_middle::query::plumbing::TyCtxtAt>::reachable_set
             at ./compiler/rustc_middle/src/query/plumbing.rs:438:31
  99: <rustc_middle::ty::context::TyCtxt>::reachable_set
             at ./compiler/rustc_middle/src/query/plumbing.rs:429:17
 100: <rustc_metadata::rmeta::encoder::EncodeContext>::encode_mir
             at ./compiler/rustc_metadata/src/rmeta/encoder.rs:1611:29
 101: <rustc_metadata::rmeta::encoder::EncodeContext>::encode_crate_root::{closure#15}
             at ./compiler/rustc_metadata/src/rmeta/encoder.rs:624:29
 102: <rustc_metadata::rmeta::encoder::EncodeContext>::encode_crate_root
             at ./compiler/rustc_metadata/src/rmeta/encoder.rs:624:13
 103: rustc_metadata::rmeta::encoder::encode_metadata_impl
             at ./compiler/rustc_metadata/src/rmeta/encoder.rs:2247:16
 104: rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}
             at ./compiler/rustc_metadata/src/rmeta/encoder.rs:2197:12
 105: <core::panic::unwind_safe::AssertUnwindSafe<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}> as core::ops::function::FnOnce<()>>::call_once
             at ./library/core/src/panic/unwind_safe.rs:272:9
 106: std::panicking::try::do_call::<core::panic::unwind_safe::AssertUnwindSafe<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}>, ()>
             at ./library/std/src/panicking.rs:552:40
 107: std::panicking::try::<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}>>
             at ./library/std/src/panicking.rs:516:19
 108: <rustc_data_structures::sync::parallel::ParallelGuard>::run::<(), rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}>
             at ./compiler/rustc_data_structures/src/sync/parallel.rs:28:9
 109: 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 ./compiler/rustc_data_structures/src/sync/parallel.rs:70:21
 110: 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 ./compiler/rustc_data_structures/src/sync/parallel.rs:44:15
 111: rustc_data_structures::sync::parallel::disabled::join::<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}, (), ()>
             at ./compiler/rustc_data_structures/src/sync/parallel.rs:69:22
 112: rustc_data_structures::sync::parallel::enabled::join::<rustc_metadata::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata::rmeta::encoder::encode_metadata::{closure#1}, (), ()>
             at ./compiler/rustc_data_structures/src/sync/parallel.rs:168:13
 113: rustc_metadata::rmeta::encoder::encode_metadata
             at ./compiler/rustc_metadata/src/rmeta/encoder.rs:2196:5
 114: rustc_metadata::fs::encode_and_write_metadata
             at ./compiler/rustc_metadata/src/fs.rs:65:13
 115: rustc_interface::passes::start_codegen
             at ./compiler/rustc_interface/src/passes.rs:919:44
 116: <rustc_interface::queries::Queries>::codegen_and_build_linker::{closure#0}
             at ./compiler/rustc_interface/src/queries.rs:236:35
 117: <rustc_middle::ty::context::GlobalCtxt>::enter::<<rustc_interface::queries::Queries>::codegen_and_build_linker::{closure#0}, core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>>::{closure#0}
             at ./compiler/rustc_middle/src/ty/context.rs:633:37
 118: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::ty::context::GlobalCtxt>::enter<<rustc_interface::queries::Queries>::codegen_and_build_linker::{closure#0}, core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>>::{closure#0}
             at ./compiler/rustc_middle/src/ty/context/tls.rs:82:9
 119: <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>::codegen_and_build_linker::{closure#0}, core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>>
             at ./library/std/src/thread/local.rs:270:16
 120: <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>::codegen_and_build_linker::{closure#0}, core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>>
             at ./library/std/src/thread/local.rs:246:9
 121: rustc_middle::ty::context::tls::enter_context::<<rustc_middle::ty::context::GlobalCtxt>::enter<<rustc_interface::queries::Queries>::codegen_and_build_linker::{closure#0}, core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>>
             at ./compiler/rustc_middle/src/ty/context/tls.rs:79:5
 122: <rustc_middle::ty::context::GlobalCtxt>::enter::<<rustc_interface::queries::Queries>::codegen_and_build_linker::{closure#0}, core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>>
             at ./compiler/rustc_middle/src/ty/context.rs:633:9
 123: <rustc_interface::queries::QueryResult<&rustc_middle::ty::context::GlobalCtxt>>::enter::<core::result::Result<rustc_interface::queries::Linker, rustc_span::ErrorGuaranteed>, <rustc_interface::queries::Queries>::codegen_and_build_linker::{closure#0}>
             at ./compiler/rustc_interface/src/queries.rs:71:9
 124: <rustc_interface::queries::Queries>::codegen_and_build_linker
             at ./compiler/rustc_interface/src/queries.rs:225:9
 125: rustc_driver_impl::run_compiler::{closure#0}::{closure#0}
             at ./compiler/rustc_driver_impl/src/lib.rs:450:26
 126: <rustc_interface::interface::Compiler>::enter::<rustc_driver_impl::run_compiler::{closure#0}::{closure#0}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>
             at ./compiler/rustc_interface/src/queries.rs:312:19
 127: rustc_driver_impl::run_compiler::{closure#0}
             at ./compiler/rustc_driver_impl/src/lib.rs:392:22
 128: rustc_interface::interface::run_compiler::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}::{closure#0}
             at ./compiler/rustc_interface/src/interface.rs:485:21
 129: 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#0}>::{closure#0}::{closure#0}>
             at ./compiler/rustc_span/src/lib.rs:1051:5
 130: rustc_interface::interface::run_compiler::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}
             at ./compiler/rustc_interface/src/interface.rs:479:13
 131: rustc_interface::util::run_in_thread_pool_with_globals::<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}
             at ./compiler/rustc_interface/src/util.rs:117:13
 132: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
             at /home/ouz/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scoped-tls-1.0.1/src/lib.rs:137:9
 133: rustc_span::create_session_globals_then::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}>
             at ./compiler/rustc_span/src/lib.rs:130:5
 134: rustc_interface::util::run_in_thread_with_globals::<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}
             at ./compiler/rustc_interface/src/util.rs:79:38
 135: std::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
             at ./library/std/src/sys_common/backtrace.rs:155:18
 136: <std::thread::Builder>::spawn_unchecked_::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#1}::{closure#0}
             at ./library/std/src/thread/mod.rs:529:17
 137: <core::panic::unwind_safe::AssertUnwindSafe<<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#1}::{closure#0}> as core::ops::function::FnOnce<()>>::call_once
             at ./library/core/src/panic/unwind_safe.rs:272:9
 138: 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::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{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 ./library/std/src/panicking.rs:552:40
 139: 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::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#1}::{closure#0}>>
             at ./library/std/src/panicking.rs:516:19
 140: std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{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 ./library/std/src/panic.rs:142:14
 141: <std::thread::Builder>::spawn_unchecked_::<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#1}
             at ./library/std/src/thread/mod.rs:528:30
 142: <<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_with_globals<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{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 ./library/core/src/ops/function.rs:250:5
 143: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at ./library/alloc/src/boxed.rs:2007:9
 144: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at ./library/alloc/src/boxed.rs:2007:9
 145: std::sys::unix::thread::Thread::new::thread_start
             at ./library/std/src/sys/unix/thread.rs:108:17
 146: <unknown>
 147: <unknown>



rustc version: 1.76.0-dev
platform: x86_64-unknown-linux-gnu

@ouz-a ouz-a 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 Nov 30, 2023
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Nov 30, 2023
@ouz-a ouz-a changed the title Ice ICE regression when removing ProjectionElem::Subtype Nov 30, 2023
@saethlin saethlin removed the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Nov 30, 2023
@matthiaskrgr matthiaskrgr added the E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been added. label Apr 19, 2024
@lcnr lcnr linked a pull request Nov 20, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. E-needs-test Call for participation: An issue has been fixed and does not reproduce, but no test has been 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.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants