Skip to content

ICE: region variables should not be hashed #112397

Closed

Description

@matthiaskrgr

Code

needs debug assertions
build with rustc -Zdump-mir=all -Zdump-mir-dir=dir

code from rustc cant-hide-behind-doubly-indirect-embedded.rs
original

// This is part of a set of tests exploring the different ways a
// structural-match ADT might try to hold a
// non-structural-match in hidden manner that lets matches
// through that we had intended to reject.
//
// See discussion on rust-lang/rust#62307 and rust-lang/rust#62339
#![warn(indirect_structural_match)]
// run-pass

struct NoDerive(#[allow(unused_tuple_struct_fields)] i32);

// This impl makes NoDerive irreflexive.
impl PartialEq for NoDerive { fn eq(&self, _: &Self) -> bool { false } }

impl Eq for NoDerive { }

#[derive(PartialEq, Eq)]
struct WrapInline<'a>(&'a &'a NoDerive);

const WRAP_DOUBLY_INDIRECT_INLINE: & &WrapInline = & &WrapInline(& & NoDerive(0));

fn main() {
    match WRAP_DOUBLY_INDIRECT_INLINE {
        WRAP_DOUBLY_INDIRECT_INLINE => { panic!("WRAP_DOUBLY_INDIRECT_INLINE matched itself"); }
        //~^ WARN must be annotated with `#[derive(PartialEq, Eq)]`
        //~| WARN this was previously accepted
        _ => { println!("WRAP_DOUBLY_INDIRECT_INLINE correctly did not match itself"); }
    }
}

reduced a bit

struct NoDerive(i32);

impl PartialEq for NoDerive {
    fn eq(&self, _: &Self) -> bool {
        false
    }
}

impl Eq for NoDerive {}

#[derive(PartialEq, Eq)]
struct WrapInline<'a>(&'a &'a NoDerive);

const WRAP_DOUBLY_INDIRECT_INLINE: &&WrapInline = &&WrapInline(&&NoDerive(0));

fn main() {
    match WRAP_DOUBLY_INDIRECT_INLINE {
        WRAP_DOUBLY_INDIRECT_INLINE | _ => {}
    }
}

Meta

rustc --version --verbose:

b2b34bd83192c3d16c88655158f7d8d612513e88

Error output

warning: to use a constant of type `NoDerive` in a pattern, `NoDerive` must be annotated with `#[derive(PartialEq, Eq)]`
  --> treereduce.out:18:9
   |
18 |         WRAP_DOUBLY_INDIRECT_INLINE | _ => {}
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #62411 <https://github.com/rust-lang/rust/issues/62411>
   = note: the traits must be derived, manual `impl`s are not sufficient
   = note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralEq.html for details
   = note: `#[warn(indirect_structural_match)]` on by default

warning: 1 warning emitted
Backtrace

thread 'rustc' panicked at 'region variables should not be hashed: '?11', /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_type_ir/src/sty.rs:1258:17
stack backtrace:
   0:     0x7fd40d2f1156 - trace
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7fd40d2f1156 - trace_unsynchronized<std::sys_common::backtrace::_print_fmt::{closure_env#1}>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fd40d2f1156 - _print_fmt
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7fd40d2f1156 - fmt
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7fd40d33d9f8 - fmt
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/rt.rs:138:9
   5:     0x7fd40d33d9f8 - write
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/mod.rs:1094:21
   6:     0x7fd40d2aafbf - write_fmt<std::sys::unix::stdio::Stderr>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/io/mod.rs:1713:15
   7:     0x7fd40d2f0f55 - _print
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7fd40d2f0f55 - print
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7fd40d2ca06c - {closure#1}
  10:     0x7fd40d2c9d42 - default_hook
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/panicking.rs:288:9
  11:     0x7fd40ec7954b - call<(&core::panic::panic_info::PanicInfo), (dyn core::ops::function::Fn<(&core::panic::panic_info::PanicInfo), Output=()> + core::marker::Send + core::marker::Sync), alloc::alloc::Global>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/alloc/src/boxed.rs:1999:9
  12:     0x7fd40ec7954b - {closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_driver_impl/src/lib.rs:1269:13
  13:     0x7fd40d2ca855 - call<(&core::panic::panic_info::PanicInfo), (dyn core::ops::function::Fn<(&core::panic::panic_info::PanicInfo), Output=()> + core::marker::Send + core::marker::Sync), alloc::alloc::Global>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/alloc/src/boxed.rs:1999:9
  14:     0x7fd40d2ca855 - rust_panic_with_hook
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/panicking.rs:709:13
  15:     0x7fd40d2f1467 - {closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/panicking.rs:597:13
  16:     0x7fd40d2f1236 - __rust_end_short_backtrace<std::panicking::begin_panic_handler::{closure_env#0}, !>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/sys_common/backtrace.rs:151:18
  17:     0x7fd40d2ca3c2 - begin_panic_handler
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/panicking.rs:593:5
  18:     0x7fd40d27e133 - panic_fmt
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/panicking.rs:67:14
  19:     0x7fd40fc8fbb3 - hash_stable<rustc_query_system::ich::hcx::StableHashingContext, rustc_middle::ty::context::TyCtxt>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_type_ir/src/sty.rs:1258:17
  20:     0x7fd40fc8fbb3 - hash_stable<rustc_type_ir::sty::RegionKind<rustc_middle::ty::context::TyCtxt>, rustc_query_system::ich::hcx::StableHashingContext>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/intern.rs:107:9
  21:     0x7fd40fc8fbb3 - hash_stable
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/sty.rs:1458:61
  22:     0x7fd40fc8fbb3 - hash_stable
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/subst.rs:50:75
  23:     0x7fd40fc8fbb3 - hash_stable
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/impls_ty.rs:72:9
  24:     0x7fd410815c42 - hash_stable<rustc_middle::ty::subst::GenericArg, rustc_query_system::ich::hcx::StableHashingContext>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/stable_hasher.rs:376:13
  25:     0x7fd410815c42 - {closure#0}<rustc_middle::ty::subst::GenericArg>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/impls_ty.rs:32:13
  26:     0x7fd410815c42 - try_with<core::cell::RefCell<std::collections::hash::map::HashMap<(usize, usize, rustc_data_structures::stable_hasher::HashingControls), rustc_data_structures::fingerprint::Fingerprint, core::hash::BuildHasherDefault<rustc_hash::FxHasher>>>, rustc_middle::ty::impls_ty::{impl#0}::hash_stable::{closure_env#0}<rustc_middle::ty::subst::GenericArg>, rustc_data_structures::fingerprint::Fingerprint>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/thread/local.rs:270:16
  27:     0x7fd410815c42 - with<core::cell::RefCell<std::collections::hash::map::HashMap<(usize, usize, rustc_data_structures::stable_hasher::HashingControls), rustc_data_structures::fingerprint::Fingerprint, core::hash::BuildHasherDefault<rustc_hash::FxHasher>>>, rustc_middle::ty::impls_ty::{impl#0}::hash_stable::{closure_env#0}<rustc_middle::ty::subst::GenericArg>, rustc_data_structures::fingerprint::Fingerprint>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/thread/local.rs:246:9
  28:     0x7fd410815c42 - hash_stable<rustc_middle::ty::subst::GenericArg>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/impls_ty.rs:25:26
  29:     0x7fd410910aa7 - hash_stable<rustc_query_system::ich::hcx::StableHashingContext, rustc_middle::ty::context::TyCtxt>
  30:     0x7fd410910aa7 - hash_stable<rustc_type_ir::sty::TyKind<rustc_middle::ty::context::TyCtxt>, rustc_query_system::ich::hcx::StableHashingContext>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_type_ir/src/ty_info.rs:108:17
  31:     0x7fd4106cdc98 - hash_stable<rustc_type_ir::ty_info::WithCachedTypeInfo<rustc_type_ir::sty::TyKind<rustc_middle::ty::context::TyCtxt>>, rustc_query_system::ich::hcx::StableHashingContext>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/intern.rs:107:9
  32:     0x7fd4106cdc98 - hash_stable
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/mod.rs:446:61
  33:     0x7fd4106cdc98 - hash_stable
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/consts.rs:24:48
  34:     0x7fd4106cdc98 - hash_stable<rustc_middle::ty::consts::ConstData, rustc_query_system::ich::hcx::StableHashingContext>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/intern.rs:107:16
  35:     0x7fd4106cdc98 - hash_stable
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/consts.rs:19:61
  36:     0x7fd4106cdc98 - {closure#0}<rustc_middle::ty::context::TyCtxt, rustc_middle::ty::consts::Const>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/dep_graph/dep_node.rs:148:13
  37:     0x7fd4106cdc98 - with_stable_hashing_context<rustc_data_structures::fingerprint::Fingerprint, rustc_query_system::dep_graph::dep_node::{impl#2}::to_fingerprint::{closure_env#0}<rustc_middle::ty::context::TyCtxt, rustc_middle::ty::consts::Const>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context.rs:1011:9
  38:     0x7fd4106cdc98 - with_stable_hashing_context<rustc_data_structures::fingerprint::Fingerprint, rustc_query_system::dep_graph::dep_node::{impl#2}::to_fingerprint::{closure_env#0}<rustc_middle::ty::context::TyCtxt, rustc_middle::ty::consts::Const>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/dep_graph/mod.rs:78:9
  39:     0x7fd4106cdc98 - to_fingerprint<rustc_middle::ty::context::TyCtxt, rustc_middle::ty::consts::Const>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/dep_graph/dep_node.rs:146:9
  40:     0x7fd4106cdc98 - execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_middle::ty::consts::Const, rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:476:17
  41:     0x7fd4106cdc98 - execute_job<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_middle::ty::consts::Const, rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:413:9
  42:     0x7fd4106cdc98 - try_execute_query<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_middle::ty::consts::Const, rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:358:13
  43:     0x7fd4107afa88 - {closure#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_middle::ty::consts::Const, rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:810:32
  44:     0x7fd4107afa88 - maybe_grow<rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::query::plumbing::get_query_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_middle::ty::consts::Const, rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>
                               at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
  45:     0x7fd4107afa88 - ensure_sufficient_stack<rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::query::plumbing::get_query_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_middle::ty::consts::Const, rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/stack.rs:17:5
  46:     0x7fd4107afa88 - get_query_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::DefaultCache<rustc_middle::ty::consts::Const, rustc_middle::query::erase::Erased<[u8; 24]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:810:5
  47:     0x7fd4107afa88 - __rust_end_short_backtrace
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:554:26
  48:     0x7fd40fd83dd6 - query_get_at<rustc_query_system::query::caches::DefaultCache<rustc_middle::ty::consts::Const, rustc_middle::query::erase::Erased<[u8; 24]>>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/query/plumbing.rs:155:17
  49:     0x7fd40fd83dd6 - destructure_const
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/query/mod.rs:2179:1
  50:     0x7fd40fd83dd6 - destructure_const
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/query/plumbing.rs:376:35
  51:     0x7fd40fd83dd6 - pretty_print_const_valtree<rustc_middle::ty::print::pretty::FmtPrinter>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/print/pretty.rs:1600:43
  52:     0x7fd40fd83d2c - pretty_print_const_valtree<rustc_middle::ty::print::pretty::FmtPrinter>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/print/pretty.rs:1586:21
  53:     0x7fd40fd83d2c - pretty_print_const_valtree<rustc_middle::ty::print::pretty::FmtPrinter>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/print/pretty.rs:1586:21
  54:     0x7fd40fd8183a - pretty_print_const<rustc_middle::ty::print::pretty::FmtPrinter>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/print/pretty.rs:1373:24
  55:     0x7fd40fc4f059 - {closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/mir/mod.rs:2802:18
  56:     0x7fd40fc4f059 - {closure#0}<rustc_middle::mir::pretty_print_const::{closure_env#0}, core::result::Result<(), core::fmt::Error>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:144:28
  57:     0x7fd40fc4f059 - {closure#0}<rustc_middle::ty::context::tls::with::{closure_env#0}<rustc_middle::mir::pretty_print_const::{closure_env#0}, core::result::Result<(), core::fmt::Error>>, core::result::Result<(), core::fmt::Error>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:111:36
  58:     0x7fd40fc4f059 - with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_middle::ty::context::tls::with::{closure_env#0}<rustc_middle::mir::pretty_print_const::{closure_env#0}, core::result::Result<(), core::fmt::Error>>, core::result::Result<(), core::fmt::Error>>, core::result::Result<(), core::fmt::Error>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:100:18
  59:     0x7fd40fc4f059 - with_context<rustc_middle::ty::context::tls::with::{closure_env#0}<rustc_middle::mir::pretty_print_const::{closure_env#0}, core::result::Result<(), core::fmt::Error>>, core::result::Result<(), core::fmt::Error>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:111:5
  60:     0x7fd40fc4f059 - with<rustc_middle::mir::pretty_print_const::{closure_env#0}, core::result::Result<(), core::fmt::Error>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:144:5
  61:     0x7fd40fc4f059 - pretty_print_const
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/mir/mod.rs:2798:5
  62:     0x7fd40d33d9f8 - fmt
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/rt.rs:138:9
  63:     0x7fd40d33d9f8 - write
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/mod.rs:1094:21
  64:     0x7fd40d33e872 - core::fmt::Formatter::write_fmt::h59240f582ad6c2c4
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/mod.rs:1560:9
  65:     0x7fd40fc7ae24 - fmt
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/mir/mod.rs:2764:9
  66:     0x7fd40fc7ae24 - fmt<rustc_middle::mir::Constant, alloc::alloc::Global>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/alloc/src/boxed.rs:1882:9
  67:     0x7fd40fc7ae24 - fmt<alloc::boxed::Box<rustc_middle::mir::Constant, alloc::alloc::Global>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/mod.rs:2268:62
  68:     0x7fd40d33d9f8 - fmt
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/rt.rs:138:9
  69:     0x7fd40d33d9f8 - write
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/mod.rs:1094:21
  70:     0x7fd40d33e872 - core::fmt::Formatter::write_fmt::h59240f582ad6c2c4
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/mod.rs:1560:9
  71:     0x7fd40fcb1d75 - fmt
  72:     0x7fd40d33d9f8 - fmt
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/rt.rs:138:9
  73:     0x7fd40d33d9f8 - write
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/mod.rs:1094:21
  74:     0x7fd40d33e872 - core::fmt::Formatter::write_fmt::h59240f582ad6c2c4
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/mod.rs:1560:9
  75:     0x7fd40fcadd6d - fmt_head<core::fmt::Formatter>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/mir/terminator.rs:324:21
  76:     0x7fd40fcadd6d - fmt
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/mir/terminator.rs:268:9
  77:     0x7fd40d33d978 - fmt
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/rt.rs:138:9
  78:     0x7fd40d33d978 - run
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/mod.rs:1142:11
  79:     0x7fd40d33d978 - write
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/mod.rs:1110:26
  80:     0x7fd40d32fac7 - write_fmt<alloc::string::String>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/fmt/mod.rs:192:9
  81:     0x7fd40d32fac7 - format_inner
                               at /home/matthias/vcs/github/rust_debug_assertions/library/alloc/src/fmt.rs:610:16
  82:     0x7fd40e4bad1c - {closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/library/alloc/src/fmt.rs:614:34
  83:     0x7fd40e4bad1c - map_or_else<&str, alloc::string::String, alloc::fmt::format::{closure_env#0}, fn(&str) -> alloc::string::String>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/option.rs:1180:21
  84:     0x7fd40e4bad1c - format
                               at /home/matthias/vcs/github/rust_debug_assertions/library/alloc/src/fmt.rs:614:5
  85:     0x7fd40e4bad1c - write_basic_block<rustc_borrowck::nll::replace_regions_in_mir::{closure_env#0}>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/alloc/src/macros.rs:120:19
  86:     0x7fd40e4bad1c - write_mir_fn<rustc_borrowck::nll::replace_regions_in_mir::{closure_env#0}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/mir/pretty.rs:321:9
  87:     0x7fd40e4bad1c - dump_matched_mir_node<rustc_borrowck::nll::replace_regions_in_mir::{closure_env#0}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/mir/pretty.rs:139:9
  88:     0x7fd40e4bad1c - dump_mir<rustc_borrowck::nll::replace_regions_in_mir::{closure_env#0}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/mir/pretty.rs:88:5
  89:     0x7fd40e4bad1c - replace_regions_in_mir
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_borrowck/src/nll.rs:75:5
  90:     0x7fd40e31bff7 - do_mir_borrowck
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_borrowck/src/lib.rs:217:9
  91:     0x7fd40e304599 - mir_borrowck
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_borrowck/src/lib.rs:147:27
  92:     0x7fd4108e480c - {closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:577:33
  93:     0x7fd4108e480c - __rust_begin_short_backtrace<rustc_query_impl::query_impl::mir_borrowck::dynamic_query::{closure#2}::{closure_env#0}, rustc_middle::query::erase::Erased<[u8; 8]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:506:18
  94:     0x7fd4108a72fc - {closure#2}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:574:25
  95:     0x7fd4108a72fc - call_once<rustc_query_impl::query_impl::mir_borrowck::dynamic_query::{closure_env#2}, (rustc_middle::ty::context::TyCtxt, rustc_span::def_id::LocalDefId)>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/ops/function.rs:250:5
  96:     0x7fd4107086c6 - compute<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/lib.rs:116:9
  97:     0x7fd4107086c6 - {closure#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:480:72
  98:     0x7fd4107086c6 - {closure#0}<rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>, rustc_middle::query::erase::Erased<[u8; 8]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:82:9
  99:     0x7fd4107086c6 - try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>, rustc_middle::query::erase::Erased<[u8; 8]>>, rustc_middle::query::erase::Erased<[u8; 8]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/thread/local.rs:270:16
 100:     0x7fd4107086c6 - with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>, rustc_middle::query::erase::Erased<[u8; 8]>>, rustc_middle::query::erase::Erased<[u8; 8]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/thread/local.rs:246:9
 101:     0x7fd4107086c6 - enter_context<rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>, rustc_middle::query::erase::Erased<[u8; 8]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:79:9
 102:     0x7fd4107086c6 - {closure#0}<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:149:13
 103:     0x7fd4107086c6 - {closure#0}<rustc_query_impl::plumbing::{impl#3}::start_query::{closure_env#0}<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>, rustc_middle::query::erase::Erased<[u8; 8]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:133:9
 104:     0x7fd4107086c6 - {closure#0}<rustc_middle::ty::context::tls::with_related_context::{closure_env#0}<rustc_query_impl::plumbing::{impl#3}::start_query::{closure_env#0}<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>, rustc_middle::query::erase::Erased<[u8; 8]>>, rustc_middle::query::erase::Erased<[u8; 8]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:111:36
 105:     0x7fd4107086c6 - with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_middle::ty::context::tls::with_related_context::{closure_env#0}<rustc_query_impl::plumbing::{impl#3}::start_query::{closure_env#0}<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>, rustc_middle::query::erase::Erased<[u8; 8]>>, rustc_middle::query::erase::Erased<[u8; 8]>>, rustc_middle::query::erase::Erased<[u8; 8]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:100:18
 106:     0x7fd4107086c6 - with_context<rustc_middle::ty::context::tls::with_related_context::{closure_env#0}<rustc_query_impl::plumbing::{impl#3}::start_query::{closure_env#0}<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>, rustc_middle::query::erase::Erased<[u8; 8]>>, rustc_middle::query::erase::Erased<[u8; 8]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:111:5
 107:     0x7fd4107086c6 - with_related_context<rustc_query_impl::plumbing::{impl#3}::start_query::{closure_env#0}<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>, rustc_middle::query::erase::Erased<[u8; 8]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:124:5
 108:     0x7fd4107086c6 - start_query<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:134:9
 109:     0x7fd4107086c6 - execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:480:18
 110:     0x7fd4107086c6 - execute_job<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:413:9
 111:     0x7fd4107086c6 - try_execute_query<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:358:13
 112:     0x7fd4107aeb46 - {closure#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:810:32
 113:     0x7fd4107aeb46 - maybe_grow<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::get_query_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>
                               at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 114:     0x7fd4107aeb46 - ensure_sufficient_stack<rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::query::plumbing::get_query_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/stack.rs:17:5
 115:     0x7fd4107aeb46 - get_query_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:810:5
 116:     0x7fd4107aeb46 - __rust_end_short_backtrace
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:554:26
 117:     0x7fd40f7882e9 - query_ensure<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/query/plumbing.rs:171:9
 118:     0x7fd40f7882e9 - mir_borrowck<rustc_span::def_id::LocalDefId>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/query/mod.rs:2179:1
 119:     0x7fd40f7882e9 - {closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_interface/src/passes.rs:771:57
 120:     0x7fd40f7882e9 - {closure#0}<rustc_interface::passes::analysis::{closure#1}::{closure_env#0}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/hir/map/mod.rs:496:82
 121:     0x7fd40f7882e9 - {closure#0}<&[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#2}::par_body_owners::{closure_env#0}<rustc_interface::passes::analysis::{closure#1}::{closure_env#0}>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/sync.rs:218:66
 122:     0x7fd40f7882e9 - call_once<(), rustc_data_structures::sync::par_for_each_in::{closure#0}::{closure_env#0}<&[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#2}::par_body_owners::{closure_env#0}<rustc_interface::passes::analysis::{closure#1}::{closure_env#0}>>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/panic/unwind_safe.rs:271:9
 123:     0x7fd40f79546b - do_call<core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::par_for_each_in::{closure#0}::{closure_env#0}<&[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#2}::par_body_owners::{closure_env#0}<rustc_interface::passes::analysis::{closure#1}::{closure_env#0}>>>, ()>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/panicking.rs:500:40
 124:     0x7fd40f79546b - try<(), core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::par_for_each_in::{closure#0}::{closure_env#0}<&[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#2}::par_body_owners::{closure_env#0}<rustc_interface::passes::analysis::{closure#1}::{closure_env#0}>>>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/panicking.rs:464:19
 125:     0x7fd40f79546b - catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<rustc_data_structures::sync::par_for_each_in::{closure#0}::{closure_env#0}<&[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#2}::par_body_owners::{closure_env#0}<rustc_interface::passes::analysis::{closure#1}::{closure_env#0}>>>, ()>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/panic.rs:142:14
 126:     0x7fd40f79546b - {closure#0}<&[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#2}::par_body_owners::{closure_env#0}<rustc_interface::passes::analysis::{closure#1}::{closure_env#0}>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/sync.rs:218:33
 127:     0x7fd40f79546b - for_each<rustc_span::def_id::LocalDefId, rustc_data_structures::sync::par_for_each_in::{closure_env#0}<&[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#2}::par_body_owners::{closure_env#0}<rustc_interface::passes::analysis::{closure#1}::{closure_env#0}>>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/slice/iter/macros.rs:204:21
 128:     0x7fd40f79546b - par_for_each_in<&[rustc_span::def_id::LocalDefId], rustc_middle::hir::map::{impl#2}::par_body_owners::{closure_env#0}<rustc_interface::passes::analysis::{closure#1}::{closure_env#0}>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/sync.rs:217:13
 129:     0x7fd40f73a99e - par_body_owners<rustc_interface::passes::analysis::{closure#1}::{closure_env#0}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/hir/map/mod.rs:496:9
 130:     0x7fd40f73a99e - {closure#1}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_interface/src/passes.rs:771:9
 131:     0x7fd40f73a99e - run<(), rustc_interface::passes::analysis::{closure_env#1}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/profiling.rs:752:9
 132:     0x7fd40f73a99e - time<(), rustc_interface::passes::analysis::{closure_env#1}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_session/src/utils.rs:11:50
 133:     0x7fd40f7700b0 - analysis
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_interface/src/passes.rs:770:5
 134:     0x7fd4108e860a - {closure#0}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:577:33
 135:     0x7fd4108e860a - __rust_begin_short_backtrace<rustc_query_impl::query_impl::analysis::dynamic_query::{closure#2}::{closure_env#0}, rustc_middle::query::erase::Erased<[u8; 1]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:506:18
 136:     0x7fd41096b928 - {closure#2}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:574:25
 137:     0x7fd41096b928 - call_once<rustc_query_impl::query_impl::analysis::dynamic_query::{closure_env#2}, (rustc_middle::ty::context::TyCtxt, ())>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/ops/function.rs:250:5
 138:     0x7fd410679ef9 - compute<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/lib.rs:116:9
 139:     0x7fd410679ef9 - {closure#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:480:72
 140:     0x7fd410679ef9 - {closure#0}<rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>, rustc_middle::query::erase::Erased<[u8; 1]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:82:9
 141:     0x7fd410679ef9 - try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>, rustc_middle::query::erase::Erased<[u8; 1]>>, rustc_middle::query::erase::Erased<[u8; 1]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/thread/local.rs:270:16
 142:     0x7fd410679ef9 - with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>, rustc_middle::query::erase::Erased<[u8; 1]>>, rustc_middle::query::erase::Erased<[u8; 1]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/thread/local.rs:246:9
 143:     0x7fd410679ef9 - enter_context<rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>, rustc_middle::query::erase::Erased<[u8; 1]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:79:9
 144:     0x7fd410679ef9 - {closure#0}<rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:149:13
 145:     0x7fd410679ef9 - {closure#0}<rustc_query_impl::plumbing::{impl#3}::start_query::{closure_env#0}<rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>, rustc_middle::query::erase::Erased<[u8; 1]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:133:9
 146:     0x7fd410679ef9 - {closure#0}<rustc_middle::ty::context::tls::with_related_context::{closure_env#0}<rustc_query_impl::plumbing::{impl#3}::start_query::{closure_env#0}<rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>, rustc_middle::query::erase::Erased<[u8; 1]>>, rustc_middle::query::erase::Erased<[u8; 1]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:111:36
 147:     0x7fd410679ef9 - with_context_opt<rustc_middle::ty::context::tls::with_context::{closure_env#0}<rustc_middle::ty::context::tls::with_related_context::{closure_env#0}<rustc_query_impl::plumbing::{impl#3}::start_query::{closure_env#0}<rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>, rustc_middle::query::erase::Erased<[u8; 1]>>, rustc_middle::query::erase::Erased<[u8; 1]>>, rustc_middle::query::erase::Erased<[u8; 1]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:100:18
 148:     0x7fd410679ef9 - with_context<rustc_middle::ty::context::tls::with_related_context::{closure_env#0}<rustc_query_impl::plumbing::{impl#3}::start_query::{closure_env#0}<rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>, rustc_middle::query::erase::Erased<[u8; 1]>>, rustc_middle::query::erase::Erased<[u8; 1]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:111:5
 149:     0x7fd410679ef9 - with_related_context<rustc_query_impl::plumbing::{impl#3}::start_query::{closure_env#0}<rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>, rustc_middle::query::erase::Erased<[u8; 1]>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:124:5
 150:     0x7fd410679ef9 - start_query<rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::query::plumbing::execute_job_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:134:9
 151:     0x7fd410679ef9 - execute_job_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:480:18
 152:     0x7fd410679ef9 - execute_job<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:413:9
 153:     0x7fd410679ef9 - try_execute_query<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt, false>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:358:13
 154:     0x7fd4108342c2 - {closure#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:810:32
 155:     0x7fd4108342c2 - maybe_grow<rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::query::plumbing::get_query_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>
                               at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/stacker-0.1.15/src/lib.rs:55:9
 156:     0x7fd4108342c2 - ensure_sufficient_stack<rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::query::plumbing::get_query_non_incr::{closure_env#0}<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_data_structures/src/stack.rs:17:5
 157:     0x7fd4108342c2 - get_query_non_incr<rustc_query_impl::DynamicConfig<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>, false, false, false>, rustc_query_impl::plumbing::QueryCtxt>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_system/src/query/plumbing.rs:810:5
 158:     0x7fd4108342c2 - __rust_end_short_backtrace
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_query_impl/src/plumbing.rs:554:26
 159:     0x7fd40ec9a1a0 - query_get_at<rustc_query_system::query::caches::SingleCache<rustc_middle::query::erase::Erased<[u8; 1]>>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/query/plumbing.rs:155:17
 160:     0x7fd40ec9a1a0 - analysis
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/query/mod.rs:2179:1
 161:     0x7fd40ec9a1a0 - analysis
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/query/plumbing.rs:376:35
 162:     0x7fd40ec9a1a0 - {closure#4}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_driver_impl/src/lib.rs:412:52
 163:     0x7fd40ec9a1a0 - {closure#0}<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure_env#4}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context.rs:571:37
 164:     0x7fd40ec9a1a0 - {closure#0}<rustc_middle::ty::context::{impl#9}::enter::{closure_env#0}<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure_env#4}, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:82:9
 165:     0x7fd40ec9a1a0 - try_with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_middle::ty::context::{impl#9}::enter::{closure_env#0}<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure_env#4}, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/thread/local.rs:270:16
 166:     0x7fd40ec9a1a0 - with<core::cell::Cell<*const ()>, rustc_middle::ty::context::tls::enter_context::{closure_env#0}<rustc_middle::ty::context::{impl#9}::enter::{closure_env#0}<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure_env#4}, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/thread/local.rs:246:9
 167:     0x7fd40ec9a1a0 - enter_context<rustc_middle::ty::context::{impl#9}::enter::{closure_env#0}<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure_env#4}, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context/tls.rs:79:9
 168:     0x7fd40ec9a1a0 - enter<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure_env#4}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_middle/src/ty/context.rs:571:9
 169:     0x7fd40ece58aa - {closure#2}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_driver_impl/src/lib.rs:412:13
 170:     0x7fd40ece58aa - enter<rustc_driver_impl::run_compiler::{closure#1}::{closure_env#2}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_interface/src/queries.rs:389:19
 171:     0x7fd40ec984b3 - {closure#1}
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_driver_impl/src/lib.rs:353:22
 172:     0x7fd40ec984b3 - {closure#0}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#1}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_interface/src/interface.rs:332:21
 173:     0x7fd40ec984b3 - set_source_map<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler::{closure#0}::{closure_env#0}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#1}>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_span/src/lib.rs:1034:5
 174:     0x7fd40ec86024 - {closure#0}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#1}>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_interface/src/interface.rs:326:13
 175:     0x7fd40ec86024 - set<rustc_span::SessionGlobals, rustc_interface::interface::run_compiler::{closure_env#0}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#1}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                               at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/scoped-tls-1.0.0/src/lib.rs:137:9
 176:     0x7fd40eca031c - create_session_globals_then<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler::{closure_env#0}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#1}>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_span/src/lib.rs:120:5
 177:     0x7fd40eca031c - {closure#0}<rustc_interface::interface::run_compiler::{closure_env#0}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#1}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                               at /home/matthias/vcs/github/rust_debug_assertions/compiler/rustc_interface/src/util.rs:155:38
 178:     0x7fd40eca031c - __rust_begin_short_backtrace<rustc_interface::util::run_in_thread_pool_with_globals::{closure#0}::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#0}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#1}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/sys_common/backtrace.rs:135:18
 179:     0x7fd40ec8cd55 - {closure#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure#0}::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#0}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#1}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/thread/mod.rs:529:17
 180:     0x7fd40ec8cd55 - call_once<core::result::Result<(), rustc_span::ErrorGuaranteed>, std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure#0}::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#0}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#1}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/panic/unwind_safe.rs:271:9
 181:     0x7fd40ec8cd55 - do_call<core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure#0}::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#0}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#1}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/panicking.rs:500:40
 182:     0x7fd40ec8cd55 - try<core::result::Result<(), rustc_span::ErrorGuaranteed>, core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure#0}::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#0}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#1}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/panicking.rs:464:19
 183:     0x7fd40ec8cd55 - catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<std::thread::{impl#0}::spawn_unchecked_::{closure#1}::{closure_env#0}<rustc_interface::util::run_in_thread_pool_with_globals::{closure#0}::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#0}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#1}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/panic.rs:142:14
 184:     0x7fd40ec8cd55 - {closure#1}<rustc_interface::util::run_in_thread_pool_with_globals::{closure#0}::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#0}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#1}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/thread/mod.rs:528:30
 185:     0x7fd40ec8cd55 - call_once<std::thread::{impl#0}::spawn_unchecked_::{closure_env#1}<rustc_interface::util::run_in_thread_pool_with_globals::{closure#0}::{closure_env#0}<rustc_interface::interface::run_compiler::{closure_env#0}<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure_env#1}>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, core::result::Result<(), rustc_span::ErrorGuaranteed>>, ()>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/core/src/ops/function.rs:250:5
 186:     0x7fd40d29ceda - call_once<(), dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/alloc/src/boxed.rs:1985:9
 187:     0x7fd40d29ceda - call_once<(), alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output=()>, alloc::alloc::Global>, alloc::alloc::Global>
                               at /home/matthias/vcs/github/rust_debug_assertions/library/alloc/src/boxed.rs:1985:9
 188:     0x7fd40d2a6d25 - thread_start
                               at /home/matthias/vcs/github/rust_debug_assertions/library/std/src/sys/unix/thread.rs:108:17
 189:     0x7fd40d06a44b - <unknown>
 190:     0x7fd40d0ede40 - <unknown>
 191:                0x0 - <unknown>

error: the compiler unexpectedly panicked. this is a bug.

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: rustc 1.72.0-dev running on x86_64-unknown-linux-gnu

note: compiler flags: -Z dump-mir=all -Z dump-mir-dir=dir

query stack during panic:
#0 [mir_borrowck] borrow-checking `main`
#1 [analysis] running analysis passes on this crate
end of query stack
warning: 1 warning emitted

Activity

  1. added
    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
    C-bugCategory: This is a bug.
    requires-nightlyThis issue requires a nightly compiler in some way. When possible, use a F-* label instead.
    requires-debug-assertionsThis issue requires a build of rustc or tooling with debug-assertions in some way
    on Jun 7, 2023
  2. matthiaskrgr commented on Jun 7, 2023

    @matthiaskrgr
    MemberAuthor

    Also crashes if I #![deny(indirect_structural_match)] :/

  3. spastorino commented on Nov 24, 2023

    @spastorino
    Member

    This issue is similar to the one address in #118118, but my PR doesn't fix this one.

  4. removed
    requires-debug-assertionsThis issue requires a build of rustc or tooling with debug-assertions in some way
    on Mar 13, 2024
  5. matthiaskrgr commented on Mar 13, 2024

    @matthiaskrgr
    MemberAuthor

    no longer requires debug assertions 🎉

  6. matthiaskrgr commented on Mar 13, 2024

    @matthiaskrgr
    MemberAuthor

    tests/ui/rfcs/rfc-1445-restrict-constants-in-patterns/cant-hide-behind-doubly-indirect-param.rs

    // This is part of a set of tests exploring the different ways a
    // structural-match ADT might try to hold a
    // non-structural-match in hidden manner that lets matches
    // through that we had intended to reject.
    //
    // See discussion on rust-lang/rust#62307 and rust-lang/rust#62339
    #![warn(indirect_structural_match)]
    //@ run-pass
    
    struct NoDerive(#[allow(dead_code)] i32);
    
    // This impl makes NoDerive irreflexive.
    impl PartialEq for NoDerive { fn eq(&self, _: &Self) -> bool { false } }
    
    impl Eq for NoDerive { }
    
    #[derive(PartialEq, Eq)]
    struct WrapParam<'a, T>(&'a &'a T);
    
    const WRAP_DOUBLY_INDIRECT_PARAM: & &WrapParam<NoDerive> = & &WrapParam(& & NoDerive(0));
    
    fn main() {
        match WRAP_DOUBLY_INDIRECT_PARAM {
            WRAP_DOUBLY_INDIRECT_PARAM => { panic!("WRAP_DOUBLY_INDIRECT_PARAM matched itself"); }
            //~^ WARN must be annotated with `#[derive(PartialEq)]`
            //~| WARN this was previously accepted
            _ => { println!("WRAP_DOUBLY_INDIRECT_PARAM correctly did not match itself"); }
        }
    }
    

    rustc -Zdump-mir=all -Zdump-mir-dir=/tmp/ -Zincremental-verify-ich=yes file.rs
    =>

    warning: lint `unused_tuple_struct_fields` has been renamed to `dead_code`
      --> /tmp/crash.rs:10:25
       |
    10 | struct NoDerive(#[allow(unused_tuple_struct_fields)] i32);
       |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `dead_code`
       |
       = note: `#[warn(renamed_and_removed_lints)]` on by default
    
    warning: to use a constant of type `NoDerive` in a pattern, `NoDerive` must be annotated with `#[derive(PartialEq)]`
      --> /tmp/crash.rs:24:9
       |
    24 | ...   WRAP_DOUBLY_INDIRECT_INLINE => { panic!("WRAP_DOUBLY_INDIRECT_INLINE matche...
       |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
       |
       = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
       = note: for more information, see issue #120362 <https://github.com/rust-lang/rust/issues/120362>
       = note: the traits must be derived, manual `impl`s are not sufficient
       = note: see https://doc.rust-lang.org/stable/std/marker/trait.StructuralPartialEq.html for details
    note: the lint level is defined here
      --> /tmp/crash.rs:7:9
       |
    7  | #![warn(indirect_structural_match)]
       |         ^^^^^^^^^^^^^^^^^^^^^^^^^
    
    thread 'rustc' panicked at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/compiler/rustc_type_ir/src/region_kind.rs:283:17:
    region variables should not be hashed: '?17
    stack backtrace:
       0:     0x7f5860ca5c22 - std::backtrace_rs::backtrace::libunwind::trace::hfaaeee8ba270e11c
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
       1:     0x7f5860ca5c22 - std::backtrace_rs::backtrace::trace_unsynchronized::h6fb1c4d325d0d969
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
       2:     0x7f5860ca5c22 - std::sys_common::backtrace::_print_fmt::hd36d192d75c5bc13
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/std/src/sys_common/backtrace.rs:68:5
       3:     0x7f5860ca5c22 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hebc622152f918065
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/std/src/sys_common/backtrace.rs:44:22
       4:     0x7f5860cf6eac - core::fmt::rt::Argument::fmt::h42d7ab9e6b9d76d9
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/core/src/fmt/rt.rs:142:9
       5:     0x7f5860cf6eac - core::fmt::write::hceb334e2bb0855cb
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/core/src/fmt/mod.rs:1153:17
       6:     0x7f5860c9aa1f - std::io::Write::write_fmt::h21e1401d0661ae6d
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/std/src/io/mod.rs:1843:15
       7:     0x7f5860ca59f4 - std::sys_common::backtrace::_print::hd5d84a1029af69b4
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/std/src/sys_common/backtrace.rs:47:5
       8:     0x7f5860ca59f4 - std::sys_common::backtrace::print::h6fd3aca52697573b
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/std/src/sys_common/backtrace.rs:34:9
       9:     0x7f5860ca86fb - std::panicking::default_hook::{{closure}}::h4a9c0b0282b315bd
      10:     0x7f5860ca8453 - std::panicking::default_hook::h64aacf0d5c35b498
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/std/src/panicking.rs:292:9
      11:     0x7f585d8f82df - std[643654c1cf6ed541]::panicking::update_hook::<alloc[2118d7c564138cf7]::boxed::Box<rustc_driver_impl[5dd99c5338b3138f]::install_ice_hook::{closure#0}>>::{closure#0}
      12:     0x7f5860ca8e60 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::haf92efa441d110c6
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/alloc/src/boxed.rs:2034:9
      13:     0x7f5860ca8e60 - std::panicking::rust_panic_with_hook::h572774bd80531e18
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/std/src/panicking.rs:783:13
      14:     0x7f5860ca8ba2 - std::panicking::begin_panic_handler::{{closure}}::he9b751db0dede176
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/std/src/panicking.rs:657:13
      15:     0x7f5860ca60f6 - std::sys_common::backtrace::__rust_end_short_backtrace::h181bd77376b4f0f9
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/std/src/sys_common/backtrace.rs:171:18
      16:     0x7f5860ca88d4 - rust_begin_unwind
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/std/src/panicking.rs:645:5
      17:     0x7f5860cf33c5 - core::panicking::panic_fmt::ha1f618a40e3acdf1
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/core/src/panicking.rs:72:14
      18:     0x7f585ed4d43b - <rustc_middle[86b082b6ae20a938]::ty::generic_args::GenericArg as rustc_data_structures[d6b8812cf1da7772]::stable_hasher::HashStable<rustc_query_system[e51c9dbcb47ac10a]::ich::hcx::StableHashingContext>>::hash_stable
      19:     0x7f585ec50836 - <rustc_type_ir[37f9c129366c5d39]::ty_info::WithCachedTypeInfo<rustc_type_ir[37f9c129366c5d39]::ty_kind::TyKind<rustc_middle[86b082b6ae20a938]::ty::context::TyCtxt>> as rustc_data_structures[d6b8812cf1da7772]::stable_hasher::HashStable<rustc_query_system[e51c9dbcb47ac10a]::ich::hcx::StableHashingContext>>::hash_stable
      20:     0x7f585f644dcc - <rustc_type_ir[37f9c129366c5d39]::ty_info::WithCachedTypeInfo<rustc_middle[86b082b6ae20a938]::ty::consts::ConstData> as rustc_data_structures[d6b8812cf1da7772]::stable_hasher::HashStable<rustc_query_system[e51c9dbcb47ac10a]::ich::hcx::StableHashingContext>>::hash_stable
      21:     0x7f585e11d39b - rustc_query_impl[72e0720568441596]::plumbing::query_key_hash_verify::<rustc_query_impl[72e0720568441596]::DynamicConfig<rustc_query_system[e51c9dbcb47ac10a]::query::caches::DefaultCache<rustc_middle[86b082b6ae20a938]::ty::consts::Const, rustc_middle[86b082b6ae20a938]::query::erase::Erased<[u8; 24usize]>>, false, false, false>>::{closure#0}
      22:     0x7f585fa6d239 - <rustc_query_system[e51c9dbcb47ac10a]::query::caches::DefaultCache<rustc_middle[86b082b6ae20a938]::ty::consts::Const, rustc_middle[86b082b6ae20a938]::query::erase::Erased<[u8; 24usize]>> as rustc_query_system[e51c9dbcb47ac10a]::query::caches::QueryCache>::iter
      23:     0x7f585fa6d0a5 - rustc_query_impl[72e0720568441596]::query_impl::destructure_const::query_key_hash_verify
      24:     0x7f585f6b8be9 - rustc_interface[5852ce9831de6ee9]::interface::run_compiler::<core[7caf98a7402569f1]::result::Result<(), rustc_span[3cee0bc3124cbc21]::ErrorGuaranteed>, rustc_driver_impl[5dd99c5338b3138f]::run_compiler::{closure#0}>::{closure#0}
      25:     0x7f585fc2fb05 - std[643654c1cf6ed541]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[5852ce9831de6ee9]::util::run_in_thread_with_globals<rustc_interface[5852ce9831de6ee9]::util::run_in_thread_pool_with_globals<rustc_interface[5852ce9831de6ee9]::interface::run_compiler<core[7caf98a7402569f1]::result::Result<(), rustc_span[3cee0bc3124cbc21]::ErrorGuaranteed>, rustc_driver_impl[5dd99c5338b3138f]::run_compiler::{closure#0}>::{closure#0}, core[7caf98a7402569f1]::result::Result<(), rustc_span[3cee0bc3124cbc21]::ErrorGuaranteed>>::{closure#0}, core[7caf98a7402569f1]::result::Result<(), rustc_span[3cee0bc3124cbc21]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[7caf98a7402569f1]::result::Result<(), rustc_span[3cee0bc3124cbc21]::ErrorGuaranteed>>
      26:     0x7f585fc2f932 - <<std[643654c1cf6ed541]::thread::Builder>::spawn_unchecked_<rustc_interface[5852ce9831de6ee9]::util::run_in_thread_with_globals<rustc_interface[5852ce9831de6ee9]::util::run_in_thread_pool_with_globals<rustc_interface[5852ce9831de6ee9]::interface::run_compiler<core[7caf98a7402569f1]::result::Result<(), rustc_span[3cee0bc3124cbc21]::ErrorGuaranteed>, rustc_driver_impl[5dd99c5338b3138f]::run_compiler::{closure#0}>::{closure#0}, core[7caf98a7402569f1]::result::Result<(), rustc_span[3cee0bc3124cbc21]::ErrorGuaranteed>>::{closure#0}, core[7caf98a7402569f1]::result::Result<(), rustc_span[3cee0bc3124cbc21]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[7caf98a7402569f1]::result::Result<(), rustc_span[3cee0bc3124cbc21]::ErrorGuaranteed>>::{closure#1} as core[7caf98a7402569f1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
      27:     0x7f5860cb2505 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h77b8b116ff3c4255
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/alloc/src/boxed.rs:2020:9
      28:     0x7f5860cb2505 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h994160effdff6027
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/alloc/src/boxed.rs:2020:9
      29:     0x7f5860cb2505 - std::sys::pal::unix::thread::Thread::new::thread_start::h336eeebfb56643a3
                                   at /rustc/3cbb93223f33024db464a4df27a13c7cce870173/library/std/src/sys/pal/unix/thread.rs:108:17
      30:     0x7f585a8a955a - <unknown>
      31:     0x7f585a926a3c - <unknown>
      32:                0x0 - <unknown>
    
    error: the compiler unexpectedly panicked. this is a bug.
    
    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 `/tmp/rustc-ice-2024-03-13T18_33_18-279183.txt` to your bug report
    
    note: compiler flags: -Z dump-mir=all -Z dump-mir-dir=/tmp/ -Z incremental-verify-ich=yes
    
    query stack during panic:
    end of query stack
    warning: 2 warnings emitted
    
  7. matthiaskrgr commented on Mar 13, 2024

    @matthiaskrgr
    MemberAuthor

    Seems to be related to #122227 cc @Zoxc

  8. Zoxc commented on Mar 14, 2024

    @Zoxc
    Contributor

    That just adds additional verification to -Zincremental-verify-ich=yes so it's not the source of the error.

  9. cyrgani commented on Aug 14, 2026

    @cyrgani
    Contributor

    indirect_structural_match is a hard error now and this no longer ICEs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.requires-nightlyThis issue requires a nightly compiler in some way. When possible, use a F-* label instead.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions