Closed
Description
Code
it's not a minimal example by any means, sorry.
https://mtrx.tech/files/code.zip
Meta
rustc --version --verbose
:
rustc 1.49.0-nightly (31530e5d1 2020-10-20)
binary: rustc
commit-hash: 31530e5d132ebcc3654baf2e5460599681520af0
commit-date: 2020-10-20
host: x86_64-unknown-linux-gnu
release: 1.49.0-nightly
LLVM version: 11.0
Error output
error: internal compiler error: compiler/rustc_middle/src/ty/sty.rs:2150:18: tuple_fields called on non-tuple
thread 'rustc' panicked at 'Box<Any>', compiler/rustc_errors/src/lib.rs:945:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
note: the compiler unexpectedly panicked. this is a bug.
Backtrace
thread 'rustc' panicked at 'Box<Any>', compiler/rustc_errors/src/lib.rs:945:9
stack backtrace:
0: std::panicking::begin_panic
1: rustc_errors::HandlerInner::bug
2: rustc_errors::Handler::bug
3: rustc_middle::util::bug::opt_span_bug_fmt::{{closure}}
4: rustc_middle::ty::context::tls::with_opt::{{closure}}
5: rustc_middle::ty::context::tls::with_opt
6: rustc_middle::util::bug::opt_span_bug_fmt
7: rustc_middle::util::bug::bug_fmt
8: rustc_middle::ty::sty::<impl rustc_middle::ty::TyS>::tuple_fields
9: rustc_trait_selection::traits::select::SelectionContext::copy_clone_conditions
10: rustc_trait_selection::traits::select::candidate_assembly::<impl rustc_trait_selection::traits::select::SelectionContext>::assemble_candidates
11: rustc_trait_selection::traits::select::candidate_assembly::<impl rustc_trait_selection::traits::select::SelectionContext>::candidate_from_obligation_no_cache
12: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
13: rustc_query_system::dep_graph::graph::DepGraph<K>::with_anon_task
14: rustc_trait_selection::traits::select::candidate_assembly::<impl rustc_trait_selection::traits::select::SelectionContext>::candidate_from_obligation
15: rustc_trait_selection::traits::select::SelectionContext::evaluate_stack
16: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
17: rustc_query_system::dep_graph::graph::DepGraph<K>::with_anon_task
18: rustc_trait_selection::traits::select::SelectionContext::evaluate_trait_predicate_recursively
19: rustc_trait_selection::traits::select::SelectionContext::evaluate_predicate_recursively::{{closure}}
20: rustc_trait_selection::traits::select::SelectionContext::evaluate_predicate_recursively
21: rustc_infer::infer::InferCtxt::probe
22: rustc_trait_selection::traits::select::SelectionContext::evaluate_root_obligation
23: rustc_infer::infer::InferCtxtBuilder::enter_with_canonical
24: rustc_traits::evaluate_obligation::evaluate_obligation
25: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::evaluate_obligation>::compute
26: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
27: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
28: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}::{{closure}}
29: rustc_query_system::query::plumbing::get_query_impl
30: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
31: <rustc_infer::infer::InferCtxt as rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation_no_overflow
32: rustc_trait_selection::traits::fulfill::FulfillProcessor::process_trait_obligation
33: rustc_trait_selection::traits::fulfill::FulfillProcessor::progress_changed_obligations
34: rustc_data_structures::obligation_forest::ObligationForest<O>::process_obligations
35: <rustc_trait_selection::traits::fulfill::FulfillmentContext as rustc_infer::traits::engine::TraitEngine>::select_where_possible
36: rustc_typeck::check::fn_ctxt::_impl::<impl rustc_typeck::check::fn_ctxt::FnCtxt>::select_obligations_where_possible
37: rustc_infer::infer::InferCtxtBuilder::enter
38: rustc_typeck::check::typeck
39: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
40: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
41: rustc_data_structures::stack::ensure_sufficient_stack
42: rustc_query_system::query::plumbing::force_query_impl
43: rustc_middle::ty::query::force_from_dep_node
44: rustc_query_system::dep_graph::graph::DepGraph<K>::try_mark_previous_green
45: rustc_query_system::dep_graph::graph::DepGraph<K>::try_mark_green_and_read
46: rustc_query_system::query::plumbing::ensure_query_impl
47: rustc_typeck::check::typeck_item_bodies
48: 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
49: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
50: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
51: rustc_data_structures::stack::ensure_sufficient_stack
52: rustc_query_system::query::plumbing::get_query_impl
53: rustc_typeck::check_crate
54: rustc_interface::passes::analysis
55: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::analysis>::compute
56: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
57: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
58: rustc_data_structures::stack::ensure_sufficient_stack
59: rustc_query_system::query::plumbing::get_query_impl
60: rustc_interface::passes::QueryContext::enter
61: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
62: rustc_span::with_source_map
63: scoped_tls::ScopedKey<T>::set
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/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
note: rustc 1.49.0-nightly (31530e5d1 2020-10-20) running on x86_64-unknown-linux-gnu
note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type bin
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `[closure@src/main.rs:18:21: 31:6]: std::clone::Clone`
#1 [typeck] type-checking `main`
#2 [typeck_item_bodies] type-checking all item bodies
#3 [analysis] running analysis passes on this crate
end of query stack