Closed
Description
Code
rustc code.rs -Ztrait-solver=next-coherence --crate-type lib
#![recursion_limit = "0"]
struct Foo {
x: u32,
}
impl Eq for Foo {}
Meta
rustc --version --verbose
:
rustc 1.74.0-nightly (8550f15e1 2023-08-27)
binary: rustc
commit-hash: 8550f15e148407159af401e02b1d9259762b3496
commit-date: 2023-08-27
host: x86_64-unknown-linux-gnu
release: 1.74.0-nightly
LLVM version: 17.0.0
Error output
None
Backtrace
thread 'rustc' panicked at compiler/rustc_trait_selection/src/solve/search_graph/mod.rs:56:59:
argument of integer logarithm must be positive
stack backtrace:
0: 0x7fcc6b162fac - std::backtrace_rs::backtrace::libunwind::trace::h3cdefe4fb23a6b3a
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x7fcc6b162fac - std::backtrace_rs::backtrace::trace_unsynchronized::h6ede82d100910221
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7fcc6b162fac - std::sys_common::backtrace::_print_fmt::h564b5755e214dbd5
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/std/src/sys_common/backtrace.rs:67:5
3: 0x7fcc6b162fac - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h3bb0b7ee87d68aed
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/std/src/sys_common/backtrace.rs:44:22
4: 0x7fcc6b1c91dc - core::fmt::rt::Argument::fmt::h903113224f096afc
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/core/src/fmt/rt.rs:138:9
5: 0x7fcc6b1c91dc - core::fmt::write::h2f2c8ce81ee50b3f
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/core/src/fmt/mod.rs:1094:21
6: 0x7fcc6b155bbe - std::io::Write::write_fmt::hb21406841559e330
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/std/src/io/mod.rs:1714:15
7: 0x7fcc6b162d94 - std::sys_common::backtrace::_print::hb55767b531e2566e
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/std/src/sys_common/backtrace.rs:47:5
8: 0x7fcc6b162d94 - std::sys_common::backtrace::print::hd074e43f409a127f
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/std/src/sys_common/backtrace.rs:34:9
9: 0x7fcc6b165e8a - std::panicking::panic_hook_with_disk_dump::{{closure}}::h046d8531ad053f91
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/std/src/panicking.rs:278:22
10: 0x7fcc6b165b78 - std::panicking::panic_hook_with_disk_dump::hfb9471961dbb25bb
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/std/src/panicking.rs:312:9
11: 0x7fcc6e34b9f9 - <rustc_driver_impl[7bf055920e34ea09]::install_ice_hook::{closure#0} as core[bf64e138fa002a57]::ops::function::FnOnce<(&core[bf64e138fa002a57]::panic::panic_info::PanicInfo,)>>::call_once::{shim:vtable#0}
12: 0x7fcc6b166731 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h72926f082835a92c
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/alloc/src/boxed.rs:2021:9
13: 0x7fcc6b166731 - std::panicking::rust_panic_with_hook::ha6d24ea6e40ae256
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/std/src/panicking.rs:733:13
14: 0x7fcc6b166471 - std::panicking::begin_panic_handler::{{closure}}::h758bfce84ed64015
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/std/src/panicking.rs:619:13
15: 0x7fcc6b1634d6 - std::sys_common::backtrace::__rust_end_short_backtrace::h8ddfdd46661af412
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/std/src/sys_common/backtrace.rs:170:18
16: 0x7fcc6b166202 - rust_begin_unwind
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/std/src/panicking.rs:617:5
17: 0x7fcc6b1c55c3 - core::panicking::panic_fmt::h19261c4223ee6e3a
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/core/src/panicking.rs:67:14
18: 0x7fcc6b1bfa3b - core::num::int_log10::panic_for_nonpositive_argument::h9e05331fcc9cc3eb
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/core/src/num/int_log10.rs:147:5
19: 0x7fcc6ef34907 - <rustc_trait_selection[6963e92147fbe2af]::solve::search_graph::SearchGraph>::new
20: 0x7fcc6eeaa55a - <rustc_trait_selection[6963e92147fbe2af]::solve::eval_ctxt::EvalCtxt>::enter_root::<core[bf64e138fa002a57]::result::Result<(bool, rustc_middle[efca071ca22fc86a]::traits::solve::Certainty, alloc[9ec5b6ee51db475b]::vec::Vec<rustc_middle[efca071ca22fc86a]::traits::solve::Goal<rustc_middle[efca071ca22fc86a]::ty::Predicate>>), rustc_middle[efca071ca22fc86a]::traits::query::NoSolution>, <rustc_infer[4430fe82bd2754ca]::infer::InferCtxt as rustc_trait_selection[6963e92147fbe2af]::solve::eval_ctxt::InferCtxtEvalExt>::evaluate_root_goal::{closure#0}::{closure#0}>
21: 0x7fcc6ef2e6a4 - <rustc_infer[4430fe82bd2754ca]::infer::InferCtxt as rustc_trait_selection[6963e92147fbe2af]::solve::eval_ctxt::InferCtxtEvalExt>::evaluate_root_goal
22: 0x7fcc6eeab896 - <rustc_trait_selection[6963e92147fbe2af]::solve::fulfill::FulfillmentCtxt as rustc_infer[4430fe82bd2754ca]::traits::engine::TraitEngine>::select_where_possible
23: 0x7fcc6cc4901b - <rustc_infer[4430fe82bd2754ca]::infer::InferCtxt as rustc_trait_selection[6963e92147fbe2af]::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation
24: 0x7fcc6d7a0465 - <core[bf64e138fa002a57]::iter::adapters::flatten::FlattenCompat<_, _> as core[bf64e138fa002a57]::iter::traits::iterator::Iterator>::try_fold::flatten::<core[bf64e138fa002a57]::slice::iter::Iter<(rustc_middle[efca071ca22fc86a]::ty::Predicate, rustc_span[a8290ff303d9da59]::span_encoding::Span)>, (), core[bf64e138fa002a57]::ops::control_flow::ControlFlow<rustc_infer[4430fe82bd2754ca]::traits::Obligation<rustc_middle[efca071ca22fc86a]::ty::Predicate>>, core[bf64e138fa002a57]::iter::adapters::map::map_try_fold<&(rustc_middle[efca071ca22fc86a]::ty::Predicate, rustc_span[a8290ff303d9da59]::span_encoding::Span), rustc_infer[4430fe82bd2754ca]::traits::Obligation<rustc_middle[efca071ca22fc86a]::ty::Predicate>, (), core[bf64e138fa002a57]::ops::control_flow::ControlFlow<rustc_infer[4430fe82bd2754ca]::traits::Obligation<rustc_middle[efca071ca22fc86a]::ty::Predicate>>, rustc_trait_selection[6963e92147fbe2af]::traits::coherence::impl_intersection_has_impossible_obligation::{closure#0}, core[bf64e138fa002a57]::iter::traits::iterator::Iterator::find::check<rustc_infer[4430fe82bd2754ca]::traits::Obligation<rustc_middle[efca071ca22fc86a]::ty::Predicate>, &mut rustc_trait_selection[6963e92147fbe2af]::traits::coherence::impl_intersection_has_impossible_obligation::{closure#1}>::{closure#0}>::{closure#0}>::{closure#0}
25: 0x7fcc6d7a0299 - <core[bf64e138fa002a57]::iter::adapters::map::Map<core[bf64e138fa002a57]::iter::adapters::flatten::Flatten<core[bf64e138fa002a57]::array::iter::IntoIter<&alloc[9ec5b6ee51db475b]::vec::Vec<(rustc_middle[efca071ca22fc86a]::ty::Predicate, rustc_span[a8290ff303d9da59]::span_encoding::Span)>, 2usize>>, rustc_trait_selection[6963e92147fbe2af]::traits::coherence::impl_intersection_has_impossible_obligation::{closure#0}> as core[bf64e138fa002a57]::iter::traits::iterator::Iterator>::try_fold::<(), core[bf64e138fa002a57]::iter::traits::iterator::Iterator::find::check<rustc_infer[4430fe82bd2754ca]::traits::Obligation<rustc_middle[efca071ca22fc86a]::ty::Predicate>, &mut rustc_trait_selection[6963e92147fbe2af]::traits::coherence::impl_intersection_has_impossible_obligation::{closure#1}>::{closure#0}, core[bf64e138fa002a57]::ops::control_flow::ControlFlow<rustc_infer[4430fe82bd2754ca]::traits::Obligation<rustc_middle[efca071ca22fc86a]::ty::Predicate>>>
26: 0x7fcc6d5ca35c - rustc_trait_selection[6963e92147fbe2af]::traits::coherence::impl_intersection_has_impossible_obligation
27: 0x7fcc6d5ca27f - <rustc_trait_selection[6963e92147fbe2af]::traits::select::SelectionContext>::with_treat_inductive_cycle_as::<core[bf64e138fa002a57]::option::Option<rustc_infer[4430fe82bd2754ca]::traits::Obligation<rustc_middle[efca071ca22fc86a]::ty::Predicate>>, rustc_trait_selection[6963e92147fbe2af]::traits::coherence::overlap::{closure#0}>
28: 0x7fcc6d5c90c2 - rustc_trait_selection[6963e92147fbe2af]::traits::coherence::overlap
29: 0x7fcc6d5d4823 - <rustc_middle[efca071ca22fc86a]::traits::specialization_graph::Children as rustc_trait_selection[6963e92147fbe2af]::traits::specialize::specialization_graph::ChildrenExt>::insert
30: 0x7fcc6d5d2d07 - <rustc_middle[efca071ca22fc86a]::traits::specialization_graph::Graph as rustc_trait_selection[6963e92147fbe2af]::traits::specialize::specialization_graph::GraphExt>::insert
31: 0x7fcc6d5d1d0d - rustc_trait_selection[6963e92147fbe2af]::traits::specialize::specialization_graph_provider
32: 0x7fcc6d7a000b - rustc_query_impl[482b33e8cb77ad03]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[482b33e8cb77ad03]::query_impl::specialization_graph_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[efca071ca22fc86a]::query::erase::Erased<[u8; 8usize]>>
33: 0x7fcc6d79ffe1 - <rustc_query_impl[482b33e8cb77ad03]::query_impl::specialization_graph_of::dynamic_query::{closure#2} as core[bf64e138fa002a57]::ops::function::FnOnce<(rustc_middle[efca071ca22fc86a]::ty::context::TyCtxt, rustc_span[a8290ff303d9da59]::def_id::DefId)>>::call_once
34: 0x7fcc6c43e535 - rustc_query_system[6e0ae15f65f556c9]::query::plumbing::try_execute_query::<rustc_query_impl[482b33e8cb77ad03]::DynamicConfig<rustc_query_system[6e0ae15f65f556c9]::query::caches::DefaultCache<rustc_span[a8290ff303d9da59]::def_id::DefId, rustc_middle[efca071ca22fc86a]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[482b33e8cb77ad03]::plumbing::QueryCtxt, false>
35: 0x7fcc6dcc8842 - rustc_query_impl[482b33e8cb77ad03]::query_impl::specialization_graph_of::get_query_non_incr::__rust_end_short_backtrace
36: 0x7fcc6d981b65 - rustc_hir_analysis[2a47ce24b01765db]::coherence::coherent_trait
37: 0x7fcc6cfcadc1 - rustc_query_impl[482b33e8cb77ad03]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[482b33e8cb77ad03]::query_impl::coherent_trait::dynamic_query::{closure#2}::{closure#0}, rustc_middle[efca071ca22fc86a]::query::erase::Erased<[u8; 0usize]>>
38: 0x7fcc6cfcada1 - <rustc_query_impl[482b33e8cb77ad03]::query_impl::coherent_trait::dynamic_query::{closure#2} as core[bf64e138fa002a57]::ops::function::FnOnce<(rustc_middle[efca071ca22fc86a]::ty::context::TyCtxt, rustc_span[a8290ff303d9da59]::def_id::DefId)>>::call_once
39: 0x7fcc6d8d9f50 - rustc_query_system[6e0ae15f65f556c9]::query::plumbing::try_execute_query::<rustc_query_impl[482b33e8cb77ad03]::DynamicConfig<rustc_query_system[6e0ae15f65f556c9]::query::caches::DefaultCache<rustc_span[a8290ff303d9da59]::def_id::DefId, rustc_middle[efca071ca22fc86a]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[482b33e8cb77ad03]::plumbing::QueryCtxt, false>
40: 0x7fcc6d8d9c6e - rustc_query_impl[482b33e8cb77ad03]::query_impl::coherent_trait::get_query_non_incr::__rust_end_short_backtrace
41: 0x7fcc6d223a2f - rustc_hir_analysis[2a47ce24b01765db]::check_crate
42: 0x7fcc6d21c4ea - rustc_interface[334a3faf735d4cd5]::passes::analysis
43: 0x7fcc6d8663ba - rustc_query_impl[482b33e8cb77ad03]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[482b33e8cb77ad03]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[efca071ca22fc86a]::query::erase::Erased<[u8; 1usize]>>
44: 0x7fcc6d8663a9 - <rustc_query_impl[482b33e8cb77ad03]::query_impl::analysis::dynamic_query::{closure#2} as core[bf64e138fa002a57]::ops::function::FnOnce<(rustc_middle[efca071ca22fc86a]::ty::context::TyCtxt, ())>>::call_once
45: 0x7fcc6d9f7878 - rustc_query_system[6e0ae15f65f556c9]::query::plumbing::try_execute_query::<rustc_query_impl[482b33e8cb77ad03]::DynamicConfig<rustc_query_system[6e0ae15f65f556c9]::query::caches::SingleCache<rustc_middle[efca071ca22fc86a]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[482b33e8cb77ad03]::plumbing::QueryCtxt, false>
46: 0x7fcc6d9f75f9 - rustc_query_impl[482b33e8cb77ad03]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
47: 0x7fcc6d622c96 - <rustc_middle[efca071ca22fc86a]::ty::context::GlobalCtxt>::enter::<rustc_driver_impl[7bf055920e34ea09]::run_compiler::{closure#1}::{closure#2}::{closure#6}, core[bf64e138fa002a57]::result::Result<(), rustc_span[a8290ff303d9da59]::ErrorGuaranteed>>
48: 0x7fcc6d62211c - <rustc_interface[334a3faf735d4cd5]::interface::Compiler>::enter::<rustc_driver_impl[7bf055920e34ea09]::run_compiler::{closure#1}::{closure#2}, core[bf64e138fa002a57]::result::Result<core[bf64e138fa002a57]::option::Option<rustc_interface[334a3faf735d4cd5]::queries::Linker>, rustc_span[a8290ff303d9da59]::ErrorGuaranteed>>
49: 0x7fcc6d61f438 - std[aea77ae81c04368]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[334a3faf735d4cd5]::util::run_in_thread_pool_with_globals<rustc_interface[334a3faf735d4cd5]::interface::run_compiler<core[bf64e138fa002a57]::result::Result<(), rustc_span[a8290ff303d9da59]::ErrorGuaranteed>, rustc_driver_impl[7bf055920e34ea09]::run_compiler::{closure#1}>::{closure#0}, core[bf64e138fa002a57]::result::Result<(), rustc_span[a8290ff303d9da59]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[bf64e138fa002a57]::result::Result<(), rustc_span[a8290ff303d9da59]::ErrorGuaranteed>>
50: 0x7fcc6dbc6f65 - <<std[aea77ae81c04368]::thread::Builder>::spawn_unchecked_<rustc_interface[334a3faf735d4cd5]::util::run_in_thread_pool_with_globals<rustc_interface[334a3faf735d4cd5]::interface::run_compiler<core[bf64e138fa002a57]::result::Result<(), rustc_span[a8290ff303d9da59]::ErrorGuaranteed>, rustc_driver_impl[7bf055920e34ea09]::run_compiler::{closure#1}>::{closure#0}, core[bf64e138fa002a57]::result::Result<(), rustc_span[a8290ff303d9da59]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[bf64e138fa002a57]::result::Result<(), rustc_span[a8290ff303d9da59]::ErrorGuaranteed>>::{closure#1} as core[bf64e138fa002a57]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
51: 0x7fcc6b171195 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h045ef323e16ec814
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/alloc/src/boxed.rs:2007:9
52: 0x7fcc6b171195 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::he86ace8451cc8e6e
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/alloc/src/boxed.rs:2007:9
53: 0x7fcc6b171195 - std::sys::unix::thread::Thread::new::thread_start::h7e69879faf381c5e
at /rustc/8550f15e148407159af401e02b1d9259762b3496/library/std/src/sys/unix/thread.rs:108:17
54: 0x7fcc6ae8c9eb - <unknown>
55: 0x7fcc6af10ebc - <unknown>
56: 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/P/icemaker_reduced/rustc-ice-2023-08-29T16:18:38.467779033Z-477833.txt` to your bug report
note: compiler flags: -Z trait-solver=next-coherence --crate-type lib
query stack during panic:
#0 [specialization_graph_of] building specialization graph of trait `core::cmp::Eq`
#1 [coherent_trait] coherence checking all impls of trait `core::cmp::Eq`
#2 [analysis] running analysis passes on this crate
end of query stack
Metadata
Metadata
Assignees
Labels
Category: This is a bug.Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Status: A Minimal Complete and Verifiable Example has been found for this issueRelevant to the compiler team, which will review and decide on the PR/issue.The Rustc Trait System Refactor Initiative (-Znext-solver)This issue requires the use of incomplete features.