Closed
Description
Code
#![feature(inherent_associated_types)]
#![allow(incomplete_features)]
struct D<T> {
a: T
}
impl<T: Default> D<T> {
type Item = T;
fn next() -> Self::Item {
Self::Item::default()
}
}
fn main() {
}
Meta
rustc --version --verbose
:
rustc --version --verbose
rustc 1.70.0-nightly (af06dce64 2023-04-08)
binary: rustc
commit-hash: af06dce64bf87ea9206bdf6cff61c144b9ce8458
commit-date: 2023-04-08
host: aarch64-apple-darwin
release: 1.70.0-nightly
LLVM version: 16.0.2
Error output
warning: struct `D` is never constructed
--> src/main.rs:4:8
|
4 | struct D<T> {
| ^
|
= note: `#[warn(dead_code)]` on by default
warning: associated function `next` is never used
--> src/main.rs:11:8
|
11 | fn next() -> Self::Item {
| ^^^^
error: internal compiler error: no errors encountered even though `delay_span_bug` issued
error: internal compiler error[E0391]: cycle detected when computing function signature of `<impl at src/main.rs:8:1: 8:22>::next`
--> src/main.rs:11:5
|
11 | fn next() -> Self::Item {
| ^^^^^^^^^^^^^^^^^^^^^^^
|
note: ...which requires computing the variances of `D`...
--> src/main.rs:4:1
|
4 | struct D<T> {
| ^^^^^^^^^^^
= note: ...which requires computing the variances for items in this crate...
= note: ...which again requires computing function signature of `<impl at src/main.rs:8:1: 8:22>::next`, completing the cycle
note: cycle used when collecting item types in top-level module
--> src/main.rs:1:1
|
1 | / #![feature(inherent_associated_types)]
2 | | #![allow(incomplete_features)]
3 | |
4 | | struct D<T> {
... |
17 | | fn main() {
18 | | }
| |_^
Backtrace
delayed at 0: std::backtrace::Backtrace::create
1: <rustc_errors::HandlerInner>::emit_diagnostic
2: <rustc_span::ErrorGuaranteed as rustc_errors::diagnostic_builder::EmissionGuarantee>::diagnostic_builder_emit_producing_guarantee
3: rustc_query_system::query::plumbing::mk_cycle::<rustc_query_impl::queries::fn_sig, rustc_query_impl::plumbing::QueryCtxt>
4: rustc_query_system::query::plumbing::cycle_error::<rustc_query_impl::queries::fn_sig, rustc_query_impl::plumbing::QueryCtxt>
5: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::fn_sig
6: <rustc_hir_analysis::variance::constraints::ConstraintContext>::build_constraints_for_item
7: rustc_hir_analysis::variance::constraints::add_constraints_from_crate
8: rustc_hir_analysis::variance::crate_variances
9: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::queries::crate_variances, rustc_query_impl::plumbing::QueryCtxt>::{closure#2}, (rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
10: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::crate_variances, rustc_query_impl::plumbing::QueryCtxt>
11: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::crate_variances
12: rustc_hir_analysis::variance::variances_of
13: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::queries::variances_of, rustc_query_impl::plumbing::QueryCtxt>::{closure#2}, (rustc_middle::query::erase::Erased<[u8; 16]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::query::erase::Erased<[u8; 16]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
14: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::variances_of, rustc_query_impl::plumbing::QueryCtxt>
15: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::variances_of
16: <rustc_infer::infer::sub::Sub as rustc_middle::ty::relate::TypeRelation>::relate_item_substs
17: rustc_middle::ty::relate::super_relate_tys::<rustc_infer::infer::sub::Sub>
18: <rustc_infer::infer::sub::Sub as rustc_middle::ty::relate::TypeRelation>::tys
19: <rustc_infer::infer::at::At>::sup::<rustc_middle::ty::Ty>
20: <rustc_infer::infer::InferCtxt>::probe::<core::option::Option<(rustc_span::def_id::DefId, rustc_span::def_id::DefId, &rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg>)>, <dyn rustc_hir_analysis::astconv::AstConv>::lookup_inherent_assoc_ty::{closure#1}::{closure#3}::{closure#0}>
21: <alloc::vec::Vec<(rustc_span::def_id::DefId, rustc_span::def_id::DefId, &rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg>)> as alloc::vec::spec_from_iter::SpecFromIter<(rustc_span::def_id::DefId, rustc_span::def_id::DefId, &rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg>), core::iter::adapters::filter_map::FilterMap<core::slice::iter::Iter<(rustc_span::def_id::DefId, (rustc_span::def_id::DefId, rustc_span::def_id::DefId))>, <dyn rustc_hir_analysis::astconv::AstConv>::lookup_inherent_assoc_ty::{closure#1}::{closure#3}>>>::from_iter
22: <rustc_infer::infer::InferCtxt>::probe::<alloc::vec::Vec<(rustc_span::def_id::DefId, rustc_span::def_id::DefId, &rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg>)>, <dyn rustc_hir_analysis::astconv::AstConv>::lookup_inherent_assoc_ty::{closure#1}>
23: <dyn rustc_hir_analysis::astconv::AstConv>::associated_path_to_ty::{closure#0}
24: <dyn rustc_hir_analysis::astconv::AstConv>::ast_ty_to_ty_inner::{closure#0}
25: <dyn rustc_hir_analysis::astconv::AstConv>::ty_of_fn::{closure#0}
26: rustc_hir_analysis::collect::infer_return_ty_for_fn_sig
27: rustc_hir_analysis::collect::fn_sig
28: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::queries::fn_sig, rustc_query_impl::plumbing::QueryCtxt>::{closure#2}, (rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
29: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::fn_sig, rustc_query_impl::plumbing::QueryCtxt>
30: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::fn_sig
31: <rustc_hir_analysis::collect::CollectItemTypesVisitor as rustc_hir::intravisit::Visitor>::visit_impl_item
32: <rustc_middle::hir::map::Map>::visit_item_likes_in_module::<rustc_hir_analysis::collect::CollectItemTypesVisitor>
33: rustc_hir_analysis::collect::collect_mod_item_types
34: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::queries::collect_mod_item_types, rustc_query_impl::plumbing::QueryCtxt>::{closure#2}, (rustc_middle::query::erase::Erased<[u8; 0]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::query::erase::Erased<[u8; 0]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
35: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::collect_mod_item_types, rustc_query_impl::plumbing::QueryCtxt>
36: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::collect_mod_item_types
37: <rustc_session::session::Session>::track_errors::<rustc_hir_analysis::check_crate::{closure#0}, ()>
38: rustc_hir_analysis::check_crate
39: rustc_interface::passes::analysis
40: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>::{closure#2}, (rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
41: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
42: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
43: <rustc_interface::queries::QueryResult<&rustc_middle::ty::context::GlobalCtxt>>::enter::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure#4}>
44: <rustc_interface::interface::Compiler>::enter::<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>
45: rustc_span::set_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
46: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
47: std::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
48: <<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
49: std::sys::unix::thread::Thread::new::thread_start
50: __pthread_deallocate
error: internal compiler error: TyKind::Error constructed but no error reported
|
= note: delayed at 0: std::backtrace::Backtrace::create
1: <rustc_errors::HandlerInner>::emit_diagnostic
2: <rustc_errors::Handler>::delay_span_bug::<rustc_span::span_encoding::Span, &str>
3: <rustc_middle::ty::sty::Binder<rustc_middle::ty::sty::FnSig> as rustc_query_system::values::Value<rustc_middle::ty::context::TyCtxt, rustc_middle::dep_graph::dep_node::DepKind>>::from_cycle_error
4: <rustc_middle::ty::subst::EarlyBinder<rustc_middle::ty::sty::Binder<rustc_middle::ty::sty::FnSig>> as rustc_query_system::values::Value<rustc_middle::ty::context::TyCtxt, rustc_middle::dep_graph::dep_node::DepKind>>::from_cycle_error
5: rustc_query_system::query::plumbing::mk_cycle::<rustc_query_impl::queries::fn_sig, rustc_query_impl::plumbing::QueryCtxt>
6: rustc_query_system::query::plumbing::cycle_error::<rustc_query_impl::queries::fn_sig, rustc_query_impl::plumbing::QueryCtxt>
7: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::fn_sig
8: <rustc_hir_analysis::variance::constraints::ConstraintContext>::build_constraints_for_item
9: rustc_hir_analysis::variance::constraints::add_constraints_from_crate
10: rustc_hir_analysis::variance::crate_variances
11: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::queries::crate_variances, rustc_query_impl::plumbing::QueryCtxt>::{closure#2}, (rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::query::erase::Erased<[u8; 8]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
12: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::crate_variances, rustc_query_impl::plumbing::QueryCtxt>
13: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::crate_variances
14: rustc_hir_analysis::variance::variances_of
15: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::queries::variances_of, rustc_query_impl::plumbing::QueryCtxt>::{closure#2}, (rustc_middle::query::erase::Erased<[u8; 16]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::query::erase::Erased<[u8; 16]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
16: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::variances_of, rustc_query_impl::plumbing::QueryCtxt>
17: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::variances_of
18: <rustc_infer::infer::sub::Sub as rustc_middle::ty::relate::TypeRelation>::relate_item_substs
19: rustc_middle::ty::relate::super_relate_tys::<rustc_infer::infer::sub::Sub>
20: <rustc_infer::infer::sub::Sub as rustc_middle::ty::relate::TypeRelation>::tys
21: <rustc_infer::infer::at::At>::sup::<rustc_middle::ty::Ty>
22: <rustc_infer::infer::InferCtxt>::probe::<core::option::Option<(rustc_span::def_id::DefId, rustc_span::def_id::DefId, &rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg>)>, <dyn rustc_hir_analysis::astconv::AstConv>::lookup_inherent_assoc_ty::{closure#1}::{closure#3}::{closure#0}>
23: <alloc::vec::Vec<(rustc_span::def_id::DefId, rustc_span::def_id::DefId, &rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg>)> as alloc::vec::spec_from_iter::SpecFromIter<(rustc_span::def_id::DefId, rustc_span::def_id::DefId, &rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg>), core::iter::adapters::filter_map::FilterMap<core::slice::iter::Iter<(rustc_span::def_id::DefId, (rustc_span::def_id::DefId, rustc_span::def_id::DefId))>, <dyn rustc_hir_analysis::astconv::AstConv>::lookup_inherent_assoc_ty::{closure#1}::{closure#3}>>>::from_iter
24: <rustc_infer::infer::InferCtxt>::probe::<alloc::vec::Vec<(rustc_span::def_id::DefId, rustc_span::def_id::DefId, &rustc_middle::ty::list::List<rustc_middle::ty::subst::GenericArg>)>, <dyn rustc_hir_analysis::astconv::AstConv>::lookup_inherent_assoc_ty::{closure#1}>
25: <dyn rustc_hir_analysis::astconv::AstConv>::associated_path_to_ty::{closure#0}
26: <dyn rustc_hir_analysis::astconv::AstConv>::ast_ty_to_ty_inner::{closure#0}
27: <dyn rustc_hir_analysis::astconv::AstConv>::ty_of_fn::{closure#0}
28: rustc_hir_analysis::collect::infer_return_ty_for_fn_sig
29: rustc_hir_analysis::collect::fn_sig
30: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::queries::fn_sig, rustc_query_impl::plumbing::QueryCtxt>::{closure#2}, (rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::query::erase::Erased<[u8; 24]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
31: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::fn_sig, rustc_query_impl::plumbing::QueryCtxt>
32: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::fn_sig
33: <rustc_hir_analysis::collect::CollectItemTypesVisitor as rustc_hir::intravisit::Visitor>::visit_impl_item
34: <rustc_middle::hir::map::Map>::visit_item_likes_in_module::<rustc_hir_analysis::collect::CollectItemTypesVisitor>
35: rustc_hir_analysis::collect::collect_mod_item_types
36: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::queries::collect_mod_item_types, rustc_query_impl::plumbing::QueryCtxt>::{closure#2}, (rustc_middle::query::erase::Erased<[u8; 0]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::query::erase::Erased<[u8; 0]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
37: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::collect_mod_item_types, rustc_query_impl::plumbing::QueryCtxt>
38: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::collect_mod_item_types
39: <rustc_session::session::Session>::track_errors::<rustc_hir_analysis::check_crate::{closure#0}, ()>
40: rustc_hir_analysis::check_crate
41: rustc_interface::passes::analysis
42: <std::thread::local::LocalKey<core::cell::Cell<*const ()>>>::with::<rustc_middle::ty::context::tls::enter_context<rustc_query_system::query::plumbing::execute_job_incr<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>::{closure#2}, (rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>::{closure#0}, (rustc_middle::query::erase::Erased<[u8; 1]>, rustc_query_system::dep_graph::graph::DepNodeIndex)>
43: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
44: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
45: <rustc_interface::queries::QueryResult<&rustc_middle::ty::context::GlobalCtxt>>::enter::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure#4}>
46: <rustc_interface::interface::Compiler>::enter::<rustc_driver_impl::run_compiler::{closure#1}::{closure#2}, core::result::Result<core::option::Option<rustc_interface::queries::Linker>, rustc_span::ErrorGuaranteed>>
47: rustc_span::set_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
48: <scoped_tls::ScopedKey<rustc_span::SessionGlobals>>::set::<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
49: std::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>
50: <<std::thread::Builder>::spawn_unchecked_<rustc_interface::util::run_in_thread_pool_with_globals<rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#0}::{closure#0}, core::result::Result<(), rustc_span::ErrorGuaranteed>>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
51: std::sys::unix::thread::Thread::new::thread_start
52: __pthread_deallocate
Metadata
Metadata
Assignees
Labels
Category: This is a bug.`#![feature(inherent_associated_types)]`Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: A query cycle occurred while none was expectedRelevant to the compiler team, which will review and decide on the PR/issue.ICE tracked in rust-lang/glacier.