Skip to content

ICE: associated type missing default with default impl #72076

Closed
@matthewjasper

Description

@matthewjasper

I tried this code on nightly:

trait X {
    type S;
    fn f() -> Self::S {}
}

fn main() {}

I expected to see this happen: Mismatched type error

Instead, this happened:

error: internal compiler error: src/librustc_typeck/collect/type_of.rs:51: associated type missing default
 --> <source>:7:5
  |
7 |     type S;
  |     ^^^^^^^

Meta

rustc --version --verbose:

rustc 1.45.0-nightly (bad3bf622 2020-05-09)
binary: rustc
commit-hash: bad3bf622bded50a97c0a54e29350eada2a3a169
commit-date: 2020-05-09
host: x86_64-unknown-linux-gnu
release: 1.45.0-nightly
LLVM version: 9.0
Backtrace

error: internal compiler error: src/librustc_typeck/collect/type_of.rs:51: associated type missing default
 --> temp.rs:2:5
  |
2 |     type S;
  |     ^^^^^^^

thread 'rustc' panicked at 'Box<Any>', /home/matthew/dev/rust/src/libstd/macros.rs:13:23
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /home/matthew/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
   1: backtrace::backtrace::trace_unsynchronized
             at /home/matthew/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:78
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:59
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1069
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1537
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:62
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:198
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:218
  10: <alloc::boxed::Box<F> as core::ops::function::Fn<A>>::call
             at ./src/liballoc/boxed.rs:1048
  11: rustc_driver::report_ice
             at src/librustc_driver/lib.rs:1157
  12: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:481
  13: std::panicking::begin_panic
             at ./src/libstd/panicking.rs:404
  14: rustc_errors::HandlerInner::span_bug
             at ./src/libstd/macros.rs:13
  15: rustc_errors::Handler::span_bug
             at ./src/librustc_errors/lib.rs:616
  16: rustc_middle::util::bug::opt_span_bug_fmt::{{closure}}
             at ./src/librustc_middle/util/bug.rs:35
  17: rustc_middle::ty::context::tls::with_opt::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1780
  18: rustc_middle::ty::context::tls::with_context_opt
             at ./src/librustc_middle/ty/context.rs:1732
  19: rustc_middle::ty::context::tls::with_opt
             at ./src/librustc_middle/ty/context.rs:1780
  20: rustc_middle::util::bug::opt_span_bug_fmt
             at ./src/librustc_middle/util/bug.rs:32
  21: rustc_middle::util::bug::span_bug_fmt
             at ./src/librustc_middle/util/bug.rs:23
  22: rustc_typeck::collect::type_of::type_of
             at src/librustc_typeck/collect/type_of.rs:51
  23: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at ./src/librustc_query_system/dep_graph/graph.rs:303
  24: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at ./src/librustc_query_system/query/plumbing.rs:0
  25: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}::{{closure}}
             at src/librustc_middle/ty/query/plumbing.rs:72
  26: stacker::maybe_grow
             at /home/matthew/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.8/src/lib.rs:52
  27: rustc_data_structures::stack::ensure_sufficient_stack
             at ./src/librustc_data_structures/stack.rs:16
  28: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at src/librustc_middle/ty/query/plumbing.rs:72
  29: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at src/librustc_middle/ty/context.rs:1671
  30: rustc_middle::ty::context::tls::set_tlv
             at src/librustc_middle/ty/context.rs:1655
  31: rustc_middle::ty::context::tls::enter_context
             at src/librustc_middle/ty/context.rs:1671
  32: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at src/librustc_middle/ty/query/plumbing.rs:71
  33: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at src/librustc_middle/ty/context.rs:1759
  34: rustc_middle::ty::context::tls::with_context::{{closure}}
             at src/librustc_middle/ty/context.rs:1743
  35: rustc_middle::ty::context::tls::with_context_opt
             at src/librustc_middle/ty/context.rs:1732
  36: rustc_middle::ty::context::tls::with_context
             at src/librustc_middle/ty/context.rs:1743
  37: rustc_middle::ty::context::tls::with_related_context
             at src/librustc_middle/ty/context.rs:1756
  38: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at src/librustc_middle/ty/query/plumbing.rs:60
  39: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at ./src/librustc_query_system/query/plumbing.rs:589
  40: rustc_query_system::query::plumbing::with_diagnostics
             at ./src/librustc_query_system/query/plumbing.rs:296
  41: rustc_query_system::query::plumbing::force_query_with_job
             at ./src/librustc_query_system/query/plumbing.rs:588
  42: rustc_query_system::query::plumbing::try_execute_query
             at ./src/librustc_query_system/query/plumbing.rs:415
  43: rustc_query_system::query::plumbing::get_query_impl::{{closure}}
             at ./src/librustc_query_system/query/plumbing.rs:639
  44: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at ./src/librustc_query_system/query/caches.rs:111
  45: rustc_query_system::query::plumbing::try_get_cached
             at ./src/librustc_query_system/query/plumbing.rs:369
  46: rustc_query_system::query::plumbing::get_query_impl
             at ./src/librustc_query_system/query/plumbing.rs:631
  47: rustc_query_system::query::plumbing::get_query
             at ./src/librustc_query_system/query/plumbing.rs:731
  48: rustc_middle::ty::query::TyCtxtAt::type_of
             at src/librustc_middle/ty/query/plumbing.rs:472
  49: rustc_middle::ty::query::<impl rustc_middle::ty::context::TyCtxt>::type_of
             at src/librustc_middle/ty/query/plumbing.rs:433
  50: rustc_middle::ty::error::<impl rustc_middle::ty::context::TyCtxt>::point_at_associated_type
             at src/librustc_middle/ty/error.rs:820
  51: rustc_middle::ty::error::<impl rustc_middle::ty::context::TyCtxt>::expected_projection
             at src/librustc_middle/ty/error.rs:708
  52: rustc_middle::ty::error::<impl rustc_middle::ty::context::TyCtxt>::note_and_explain_type_err
             at src/librustc_middle/ty/error.rs:495
  53: rustc_infer::infer::error_reporting::<impl rustc_infer::infer::InferCtxt>::note_type_err
             at src/librustc_infer/infer/error_reporting/mod.rs:1601
  54: rustc_infer::infer::error_reporting::<impl rustc_infer::infer::InferCtxt>::report_and_explain_type_error
             at src/librustc_infer/infer/error_reporting/mod.rs:1696
  55: rustc_infer::infer::InferCtxt::report_mismatched_types
             at src/librustc_infer/infer/mod.rs:1491
  56: rustc_typeck::check::coercion::CoerceMany<E>::report_return_mismatched_types
             at src/librustc_typeck/check/coercion.rs:1331
  57: rustc_typeck::check::coercion::CoerceMany<E>::coerce_inner
             at src/librustc_typeck/check/coercion.rs:1259
  58: rustc_typeck::check::coercion::CoerceMany<E>::coerce
             at src/librustc_typeck/check/coercion.rs:1103
  59: rustc_typeck::check::FnCtxt::check_block_with_expected::{{closure}}
             at src/librustc_typeck/check/mod.rs:4737
  60: rustc_typeck::check::FnCtxt::with_breakable_ctxt
             at src/librustc_typeck/check/mod.rs:5748
  61: rustc_typeck::check::FnCtxt::check_block_with_expected
             at src/librustc_typeck/check/mod.rs:4721
  62: rustc_typeck::check::expr::<impl rustc_typeck::check::FnCtxt>::check_expr_kind
             at src/librustc_typeck/check/expr.rs:262
  63: rustc_typeck::check::expr::<impl rustc_typeck::check::FnCtxt>::check_expr_with_expectation_and_needs
             at src/librustc_typeck/check/expr.rs:173
  64: rustc_typeck::check::expr::<impl rustc_typeck::check::FnCtxt>::check_expr_with_expectation
             at src/librustc_typeck/check/expr.rs:120
  65: rustc_typeck::check::expr::<impl rustc_typeck::check::FnCtxt>::check_expr_with_hint
             at src/librustc_typeck/check/expr.rs:112
  66: rustc_typeck::check::expr::<impl rustc_typeck::check::FnCtxt>::check_return_expr
             at src/librustc_typeck/check/expr.rs:724
  67: rustc_typeck::check::check_fn
             at src/librustc_typeck/check/mod.rs:1396
  68: rustc_typeck::check::typeck_tables_of_with_fallback::{{closure}}
             at src/librustc_typeck/check/mod.rs:1041
  69: rustc_typeck::check::InheritedBuilder::enter::{{closure}}
             at src/librustc_typeck/check/mod.rs:659
  70: rustc_infer::infer::InferCtxtBuilder::enter::{{closure}}
             at ./src/librustc_infer/infer/mod.rs:664
  71: rustc_middle::ty::context::GlobalCtxt::enter_local::{{closure}}::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1506
  72: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1671
  73: rustc_middle::ty::context::tls::set_tlv
             at ./src/librustc_middle/ty/context.rs:1655
  74: rustc_middle::ty::context::tls::enter_context
             at ./src/librustc_middle/ty/context.rs:1671
  75: rustc_middle::ty::context::GlobalCtxt::enter_local::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1506
  76: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1759
  77: rustc_middle::ty::context::tls::with_context::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1743
  78: rustc_middle::ty::context::tls::with_context_opt
             at ./src/librustc_middle/ty/context.rs:1732
  79: rustc_middle::ty::context::tls::with_context
             at ./src/librustc_middle/ty/context.rs:1743
  80: rustc_middle::ty::context::tls::with_related_context
             at ./src/librustc_middle/ty/context.rs:1756
  81: rustc_middle::ty::context::GlobalCtxt::enter_local
             at ./src/librustc_middle/ty/context.rs:1498
  82: rustc_infer::infer::InferCtxtBuilder::enter
             at ./src/librustc_infer/infer/mod.rs:663
  83: rustc_typeck::check::InheritedBuilder::enter
             at src/librustc_typeck/check/mod.rs:659
  84: rustc_typeck::check::typeck_tables_of_with_fallback
             at src/librustc_typeck/check/mod.rs:1011
  85: rustc_typeck::check::typeck_tables_of
             at src/librustc_typeck/check/mod.rs:973
  86: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::typeck_tables_of>::compute
             at ./src/librustc_middle/ty/query/plumbing.rs:362
  87: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at ./src/librustc_query_system/dep_graph/graph.rs:303
  88: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at ./src/librustc_query_system/query/plumbing.rs:0
  89: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}::{{closure}}
             at ./src/librustc_middle/ty/query/plumbing.rs:72
  90: stacker::maybe_grow
             at /home/matthew/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.8/src/lib.rs:52
  91: rustc_data_structures::stack::ensure_sufficient_stack
             at ./src/librustc_data_structures/stack.rs:16
  92: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at ./src/librustc_middle/ty/query/plumbing.rs:72
  93: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1671
  94: rustc_middle::ty::context::tls::set_tlv
             at ./src/librustc_middle/ty/context.rs:1655
  95: rustc_middle::ty::context::tls::enter_context
             at ./src/librustc_middle/ty/context.rs:1671
  96: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at ./src/librustc_middle/ty/query/plumbing.rs:71
  97: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1759
  98: rustc_middle::ty::context::tls::with_context::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1743
  99: rustc_middle::ty::context::tls::with_context_opt
             at ./src/librustc_middle/ty/context.rs:1732
 100: rustc_middle::ty::context::tls::with_context
             at ./src/librustc_middle/ty/context.rs:1743
 101: rustc_middle::ty::context::tls::with_related_context
             at ./src/librustc_middle/ty/context.rs:1756
 102: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at ./src/librustc_middle/ty/query/plumbing.rs:60
 103: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at ./src/librustc_query_system/query/plumbing.rs:589
 104: rustc_query_system::query::plumbing::with_diagnostics
             at ./src/librustc_query_system/query/plumbing.rs:296
 105: rustc_query_system::query::plumbing::force_query_with_job
             at ./src/librustc_query_system/query/plumbing.rs:588
 106: rustc_query_system::query::plumbing::try_execute_query
             at ./src/librustc_query_system/query/plumbing.rs:415
 107: rustc_query_system::query::plumbing::get_query_impl::{{closure}}
             at ./src/librustc_query_system/query/plumbing.rs:639
 108: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at ./src/librustc_query_system/query/caches.rs:111
 109: rustc_query_system::query::plumbing::try_get_cached
             at ./src/librustc_query_system/query/plumbing.rs:369
 110: rustc_query_system::query::plumbing::get_query_impl
             at ./src/librustc_query_system/query/plumbing.rs:631
 111: rustc_query_system::query::plumbing::ensure_query_impl
             at ./src/librustc_query_system/query/plumbing.rs:0
 112: rustc_query_system::query::plumbing::ensure_query
             at ./src/librustc_query_system/query/plumbing.rs:741
 113: rustc_middle::ty::query::TyCtxtEnsure::typeck_tables_of
             at ./src/librustc_middle/ty/query/plumbing.rs:389
 114: rustc_typeck::check::typeck_item_bodies::{{closure}}
             at src/librustc_typeck/check/mod.rs:753
 115: rustc_middle::ty::<impl rustc_middle::ty::context::TyCtxt>::par_body_owners::{{closure}}
             at ./src/librustc_middle/ty/mod.rs:2634
 116: core::iter::traits::iterator::Iterator::for_each::call::{{closure}}
             at ./src/libcore/iter/traits/iterator.rs:655
 117: core::iter::traits::iterator::Iterator::fold::ok::{{closure}}
             at ./src/libcore/iter/traits/iterator.rs:2002
 118: core::iter::traits::iterator::Iterator::try_fold
             at ./src/libcore/iter/traits/iterator.rs:1878
 119: core::iter::traits::iterator::Iterator::fold
             at ./src/libcore/iter/traits/iterator.rs:2005
 120: core::iter::traits::iterator::Iterator::for_each
             at ./src/libcore/iter/traits/iterator.rs:658
 121: rustc_middle::ty::<impl rustc_middle::ty::context::TyCtxt>::par_body_owners
             at ./src/librustc_middle/ty/mod.rs:2633
 122: rustc_typeck::check::typeck_item_bodies
             at src/librustc_typeck/check/mod.rs:752
 123: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::typeck_item_bodies>::compute
             at ./src/librustc_middle/ty/query/plumbing.rs:362
 124: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at ./src/librustc_query_system/dep_graph/graph.rs:303
 125: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at ./src/librustc_query_system/query/plumbing.rs:0
 126: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}::{{closure}}
             at ./src/librustc_middle/ty/query/plumbing.rs:72
 127: stacker::maybe_grow
             at /home/matthew/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.8/src/lib.rs:52
 128: rustc_data_structures::stack::ensure_sufficient_stack
             at ./src/librustc_data_structures/stack.rs:16
 129: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at ./src/librustc_middle/ty/query/plumbing.rs:72
 130: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1671
 131: rustc_middle::ty::context::tls::set_tlv
             at ./src/librustc_middle/ty/context.rs:1655
 132: rustc_middle::ty::context::tls::enter_context
             at ./src/librustc_middle/ty/context.rs:1671
 133: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at ./src/librustc_middle/ty/query/plumbing.rs:71
 134: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1759
 135: rustc_middle::ty::context::tls::with_context::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1743
 136: rustc_middle::ty::context::tls::with_context_opt
             at ./src/librustc_middle/ty/context.rs:1732
 137: rustc_middle::ty::context::tls::with_context
             at ./src/librustc_middle/ty/context.rs:1743
 138: rustc_middle::ty::context::tls::with_related_context
             at ./src/librustc_middle/ty/context.rs:1756
 139: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at ./src/librustc_middle/ty/query/plumbing.rs:60
 140: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at ./src/librustc_query_system/query/plumbing.rs:589
 141: rustc_query_system::query::plumbing::with_diagnostics
             at ./src/librustc_query_system/query/plumbing.rs:296
 142: rustc_query_system::query::plumbing::force_query_with_job
             at ./src/librustc_query_system/query/plumbing.rs:588
 143: rustc_query_system::query::plumbing::try_execute_query
             at ./src/librustc_query_system/query/plumbing.rs:415
 144: rustc_query_system::query::plumbing::get_query_impl::{{closure}}
             at ./src/librustc_query_system/query/plumbing.rs:639
 145: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at ./src/librustc_query_system/query/caches.rs:111
 146: rustc_query_system::query::plumbing::try_get_cached
             at ./src/librustc_query_system/query/plumbing.rs:369
 147: rustc_query_system::query::plumbing::get_query_impl
             at ./src/librustc_query_system/query/plumbing.rs:631
 148: rustc_query_system::query::plumbing::get_query
             at ./src/librustc_query_system/query/plumbing.rs:731
 149: rustc_middle::ty::query::TyCtxtAt::typeck_item_bodies
             at ./src/librustc_middle/ty/query/plumbing.rs:472
 150: rustc_middle::ty::query::<impl rustc_middle::ty::context::TyCtxt>::typeck_item_bodies
             at ./src/librustc_middle/ty/query/plumbing.rs:433
 151: rustc_typeck::check_crate::{{closure}}
             at src/librustc_typeck/lib.rs:365
 152: rustc_data_structures::profiling::VerboseTimingGuard::run
             at ./src/librustc_data_structures/profiling.rs:573
 153: rustc_session::utils::<impl rustc_session::session::Session>::time
             at ./src/librustc_session/utils.rs:9
 154: rustc_typeck::check_crate
             at src/librustc_typeck/lib.rs:365
 155: rustc_interface::passes::analysis
             at src/librustc_interface/passes.rs:807
 156: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::analysis>::compute
             at ./src/librustc_middle/ty/query/plumbing.rs:362
 157: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at ./src/librustc_query_system/dep_graph/graph.rs:303
 158: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at ./src/librustc_query_system/query/plumbing.rs:0
 159: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}::{{closure}}
             at ./src/librustc_middle/ty/query/plumbing.rs:72
 160: stacker::maybe_grow
             at /home/matthew/.cargo/registry/src/github.com-1ecc6299db9ec823/stacker-0.1.8/src/lib.rs:52
 161: rustc_data_structures::stack::ensure_sufficient_stack
             at ./src/librustc_data_structures/stack.rs:16
 162: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at ./src/librustc_middle/ty/query/plumbing.rs:72
 163: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1671
 164: rustc_middle::ty::context::tls::set_tlv
             at ./src/librustc_middle/ty/context.rs:1655
 165: rustc_middle::ty::context::tls::enter_context
             at ./src/librustc_middle/ty/context.rs:1671
 166: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at ./src/librustc_middle/ty/query/plumbing.rs:71
 167: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1759
 168: rustc_middle::ty::context::tls::with_context::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1743
 169: rustc_middle::ty::context::tls::with_context_opt
             at ./src/librustc_middle/ty/context.rs:1732
 170: rustc_middle::ty::context::tls::with_context
             at ./src/librustc_middle/ty/context.rs:1743
 171: rustc_middle::ty::context::tls::with_related_context
             at ./src/librustc_middle/ty/context.rs:1756
 172: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at ./src/librustc_middle/ty/query/plumbing.rs:60
 173: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at ./src/librustc_query_system/query/plumbing.rs:589
 174: rustc_query_system::query::plumbing::with_diagnostics
             at ./src/librustc_query_system/query/plumbing.rs:296
 175: rustc_query_system::query::plumbing::force_query_with_job
             at ./src/librustc_query_system/query/plumbing.rs:588
 176: rustc_query_system::query::plumbing::try_execute_query
             at ./src/librustc_query_system/query/plumbing.rs:415
 177: rustc_query_system::query::plumbing::get_query_impl::{{closure}}
             at ./src/librustc_query_system/query/plumbing.rs:639
 178: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at ./src/librustc_query_system/query/caches.rs:111
 179: rustc_query_system::query::plumbing::try_get_cached
             at ./src/librustc_query_system/query/plumbing.rs:369
 180: rustc_query_system::query::plumbing::get_query_impl
             at ./src/librustc_query_system/query/plumbing.rs:631
 181: rustc_query_system::query::plumbing::get_query
             at ./src/librustc_query_system/query/plumbing.rs:731
 182: rustc_middle::ty::query::TyCtxtAt::analysis
             at ./src/librustc_middle/ty/query/plumbing.rs:472
 183: rustc_middle::ty::query::<impl rustc_middle::ty::context::TyCtxt>::analysis
             at ./src/librustc_middle/ty/query/plumbing.rs:433
 184: rustc_driver::run_compiler::{{closure}}::{{closure}}::{{closure}}
             at src/librustc_driver/lib.rs:383
 185: rustc_middle::ty::context::tls::enter_global::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1694
 186: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at ./src/librustc_middle/ty/context.rs:1671
 187: rustc_middle::ty::context::tls::set_tlv
             at ./src/librustc_middle/ty/context.rs:1655
 188: rustc_middle::ty::context::tls::enter_context
             at ./src/librustc_middle/ty/context.rs:1671
 189: rustc_middle::ty::context::tls::enter_global
             at ./src/librustc_middle/ty/context.rs:1694
 190: rustc_interface::passes::QueryContext::enter
             at ./src/librustc_interface/passes.rs:708
 191: rustc_driver::run_compiler::{{closure}}::{{closure}}
             at src/librustc_driver/lib.rs:383
 192: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
             at ./src/librustc_interface/queries.rs:385
 193: rustc_driver::run_compiler::{{closure}}
             at src/librustc_driver/lib.rs:283
 194: rustc_interface::interface::run_compiler_in_existing_thread_pool
             at ./src/librustc_interface/interface.rs:199
 195: rustc_interface::interface::run_compiler::{{closure}}
             at ./src/librustc_interface/interface.rs:213
 196: rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}::{{closure}}
             at ./src/librustc_interface/util.rs:146
 197: scoped_tls::ScopedKey<T>::set
             at /home/matthew/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
 198: rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}
             at ./src/librustc_interface/util.rs:142
 199: scoped_tls::ScopedKey<T>::set
             at /home/matthew/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
 200: rustc_ast::attr::with_globals::{{closure}}
             at ./src/librustc_ast/attr/mod.rs:44
 201: scoped_tls::ScopedKey<T>::set
             at /home/matthew/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
 202: rustc_ast::attr::with_globals
             at ./src/librustc_ast/attr/mod.rs:44
 203: rustc_interface::util::spawn_thread_pool::{{closure}}
             at ./src/librustc_interface/util.rs:141
 204: rustc_interface::util::scoped_thread::{{closure}}
             at ./src/librustc_interface/util.rs:116
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.45.0-dev running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [type_of] processing `X::S`
#1 [typeck_tables_of] type-checking `X::f`
#2 [typeck_item_bodies] type-checking all item bodies
#3 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to previous error

Metadata

Metadata

Assignees

Labels

C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-mediumMedium priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.glacierICE tracked in rust-lang/glacier.regression-from-stable-to-nightlyPerformance or correctness regression from stable to nightly.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions