Closed
Description
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