Open
Description
Only under --release
, after #142625 https://github.com/EFanZh/ast-demangle no longer builds with a cycle error during inline evaluation. Default --debug
builds do not hit this.
Code
https://github.com/EFanZh/ast-demangle (as of commit b4b0d5d, which is current HEAD)
I expected to see this happen: pass
Instead, this happened: cycle error
error[E0391]: cycle detected when optimizing MIR for `rust_v0::<impl at src/rust_v0/mod.rs:60:32: 60:41>::eq`
--> src/rust_v0/mod.rs:60:32
|
60 | #[derive(Clone, Eq, Hash, Ord, PartialEq, PartialOrd)]
| ^^^^^^^^^
|
note: ...which requires optimizing MIR for `rust_v0::<impl at src/rust_v0/mod.rs:210:39: 210:48>::eq`...
--> src/rust_v0/mod.rs:210:39
|
210 | #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
| ^^^^^^^^^
= note: ...which again requires optimizing MIR for `rust_v0::<impl at src/rust_v0/mod.rs:60:32: 60:41>::eq`, completing the cycle
note: cycle used when optimizing MIR for `rust_v0::<impl at src/rust_v0/mod.rs:15:39: 15:48>::eq`
--> src/rust_v0/mod.rs:15:39
|
15 | #[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
| ^^^^^^^^^
= note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information
Version it worked on
Before #142625
Version with regression
Backtrace
Backtrace
thread 'rustc' panicked at compiler/rustc_errors/src/lib.rs:1838:17:
aborting due to `-Z treat-err-as-bug=1`
stack backtrace:
0: 0x71ada4175aa3 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h4b84b18f52d871f7
1: 0x71ada4802c7f - core::fmt::write::hddeac91703b6499d
2: 0x71ada416b5d3 - std::io::Write::write_fmt::h28f31377e98688f6
3: 0x71ada4175902 - std::sys::backtrace::BacktraceLock::print::h52d0fd2be6990145
4: 0x71ada417939a - std::panicking::default_hook::{{closure}}::h77b4c5e7cec39435
5: 0x71ada4178f1f - std::panicking::default_hook::h61df2e12d1f260cf
6: 0x71ada3223d33 - std[c539802e89e8d81a]::panicking::update_hook::<alloc[247485d20f619618]::boxed::Box<rustc_driver_impl[3a492dd9a06cbf2d]::install_ice_hook::{closure#1}>>::{closure#0}
7: 0x71ada4179beb - std::panicking::rust_panic_with_hook::h2deddd251118f4d3
8: 0x71ada41798b6 - std::panicking::begin_panic_handler::{{closure}}::h5fe965e188abe62f
9: 0x71ada4175f69 - std::sys::backtrace::__rust_end_short_backtrace::h0f72bacaad7bd6db
10: 0x71ada41795cd - __rustc[38c938b2c9dd7d5c]::rust_begin_unwind
11: 0x71ada08ba720 - core::panicking::panic_fmt::h80892ba21db80006
12: 0x71ada3274037 - <rustc_errors[793135f862eb652b]::DiagCtxtInner>::panic_if_treat_err_as_bug
13: 0x71ada5d31e88 - <rustc_errors[793135f862eb652b]::DiagCtxtInner>::emit_diagnostic::{closure#3}
14: 0x71ada5d2f98d - rustc_interface[b327675518afe1b5]::callbacks::track_diagnostic::<core[cdc97c9c0b6fd462]::option::Option<rustc_span[dd9d35b931de6930]::ErrorGuaranteed>>::{closure#0}
15: 0x71ada5d2f32b - rustc_interface[b327675518afe1b5]::callbacks::track_diagnostic::<core[cdc97c9c0b6fd462]::option::Option<rustc_span[dd9d35b931de6930]::ErrorGuaranteed>>
16: 0x71ada5d2e93d - <rustc_errors[793135f862eb652b]::DiagCtxtInner>::emit_diagnostic
17: 0x71ada5d2e7ff - <rustc_errors[793135f862eb652b]::DiagCtxtHandle>::emit_diagnostic
18: 0x71ada0fdc5d0 - <rustc_span[dd9d35b931de6930]::ErrorGuaranteed as rustc_errors[793135f862eb652b]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
19: 0x71ada3b9bf8c - rustc_query_system[8d89d55943c1ebd2]::query::plumbing::mk_cycle::<rustc_query_impl[3a213cbfc7e81906]::DynamicConfig<rustc_query_system[8d89d55943c1ebd2]::query::caches::DefaultCache<rustc_type_ir[4c29bc3dc42f1408]::predicate::TraitRef<rustc_middle[5796165e46beff11]::ty::context::TyCtxt>, rustc_middle[5796165e46beff11]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[3a213cbfc7e81906]::plumbing::QueryCtxt>
20: 0x71ada3b82859 - rustc_query_system[8d89d55943c1ebd2]::query::plumbing::cycle_error::<rustc_query_impl[3a213cbfc7e81906]::DynamicConfig<rustc_query_system[8d89d55943c1ebd2]::query::caches::DefIdCache<rustc_middle[5796165e46beff11]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[3a213cbfc7e81906]::plumbing::QueryCtxt>
21: 0x71ada483849a - rustc_query_system[8d89d55943c1ebd2]::query::plumbing::try_execute_query::<rustc_query_impl[3a213cbfc7e81906]::DynamicConfig<rustc_query_system[8d89d55943c1ebd2]::query::caches::DefIdCache<rustc_middle[5796165e46beff11]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[3a213cbfc7e81906]::plumbing::QueryCtxt, false>
22: 0x71ada483711b - rustc_query_impl[3a213cbfc7e81906]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
23: 0x71ada1a5e420 - <rustc_middle[5796165e46beff11]::ty::context::TyCtxt>::instance_mir
24: 0x71ada542e9f5 - rustc_mir_transform[b3fbc0bf8a9d046a]::inline::process_blocks::<rustc_mir_transform[b3fbc0bf8a9d046a]::inline::NormalInliner>
25: 0x71ada542d83f - rustc_mir_transform[b3fbc0bf8a9d046a]::inline::process_blocks::<rustc_mir_transform[b3fbc0bf8a9d046a]::inline::NormalInliner>
26: 0x71ada542d83f - rustc_mir_transform[b3fbc0bf8a9d046a]::inline::process_blocks::<rustc_mir_transform[b3fbc0bf8a9d046a]::inline::NormalInliner>
27: 0x71ada542d83f - rustc_mir_transform[b3fbc0bf8a9d046a]::inline::process_blocks::<rustc_mir_transform[b3fbc0bf8a9d046a]::inline::NormalInliner>
28: 0x71ada547e3fd - <rustc_mir_transform[b3fbc0bf8a9d046a]::inline::Inline as rustc_mir_transform[b3fbc0bf8a9d046a]::pass_manager::MirPass>::run_pass
29: 0x71ada4810158 - rustc_mir_transform[b3fbc0bf8a9d046a]::run_optimization_passes
30: 0x71ada51f90a0 - rustc_mir_transform[b3fbc0bf8a9d046a]::optimized_mir
31: 0x71ada51f8875 - rustc_query_impl[3a213cbfc7e81906]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3a213cbfc7e81906]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[5796165e46beff11]::query::erase::Erased<[u8; 8usize]>>
32: 0x71ada4837c25 - rustc_query_system[8d89d55943c1ebd2]::query::plumbing::try_execute_query::<rustc_query_impl[3a213cbfc7e81906]::DynamicConfig<rustc_query_system[8d89d55943c1ebd2]::query::caches::DefIdCache<rustc_middle[5796165e46beff11]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[3a213cbfc7e81906]::plumbing::QueryCtxt, false>
33: 0x71ada483711b - rustc_query_impl[3a213cbfc7e81906]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
34: 0x71ada1a5e420 - <rustc_middle[5796165e46beff11]::ty::context::TyCtxt>::instance_mir
35: 0x71ada542e9f5 - rustc_mir_transform[b3fbc0bf8a9d046a]::inline::process_blocks::<rustc_mir_transform[b3fbc0bf8a9d046a]::inline::NormalInliner>
36: 0x71ada542d83f - rustc_mir_transform[b3fbc0bf8a9d046a]::inline::process_blocks::<rustc_mir_transform[b3fbc0bf8a9d046a]::inline::NormalInliner>
37: 0x71ada542d83f - rustc_mir_transform[b3fbc0bf8a9d046a]::inline::process_blocks::<rustc_mir_transform[b3fbc0bf8a9d046a]::inline::NormalInliner>
38: 0x71ada542d83f - rustc_mir_transform[b3fbc0bf8a9d046a]::inline::process_blocks::<rustc_mir_transform[b3fbc0bf8a9d046a]::inline::NormalInliner>
39: 0x71ada547e3fd - <rustc_mir_transform[b3fbc0bf8a9d046a]::inline::Inline as rustc_mir_transform[b3fbc0bf8a9d046a]::pass_manager::MirPass>::run_pass
40: 0x71ada4810158 - rustc_mir_transform[b3fbc0bf8a9d046a]::run_optimization_passes
41: 0x71ada51f90a0 - rustc_mir_transform[b3fbc0bf8a9d046a]::optimized_mir
42: 0x71ada51f8875 - rustc_query_impl[3a213cbfc7e81906]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3a213cbfc7e81906]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[5796165e46beff11]::query::erase::Erased<[u8; 8usize]>>
43: 0x71ada4837c25 - rustc_query_system[8d89d55943c1ebd2]::query::plumbing::try_execute_query::<rustc_query_impl[3a213cbfc7e81906]::DynamicConfig<rustc_query_system[8d89d55943c1ebd2]::query::caches::DefIdCache<rustc_middle[5796165e46beff11]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[3a213cbfc7e81906]::plumbing::QueryCtxt, false>
44: 0x71ada483711b - rustc_query_impl[3a213cbfc7e81906]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
45: 0x71ada1a5e420 - <rustc_middle[5796165e46beff11]::ty::context::TyCtxt>::instance_mir
46: 0x71ada542e9f5 - rustc_mir_transform[b3fbc0bf8a9d046a]::inline::process_blocks::<rustc_mir_transform[b3fbc0bf8a9d046a]::inline::NormalInliner>
47: 0x71ada542d83f - rustc_mir_transform[b3fbc0bf8a9d046a]::inline::process_blocks::<rustc_mir_transform[b3fbc0bf8a9d046a]::inline::NormalInliner>
48: 0x71ada542d83f - rustc_mir_transform[b3fbc0bf8a9d046a]::inline::process_blocks::<rustc_mir_transform[b3fbc0bf8a9d046a]::inline::NormalInliner>
49: 0x71ada547e3fd - <rustc_mir_transform[b3fbc0bf8a9d046a]::inline::Inline as rustc_mir_transform[b3fbc0bf8a9d046a]::pass_manager::MirPass>::run_pass
50: 0x71ada4810158 - rustc_mir_transform[b3fbc0bf8a9d046a]::run_optimization_passes
51: 0x71ada51f90a0 - rustc_mir_transform[b3fbc0bf8a9d046a]::optimized_mir
52: 0x71ada51f8875 - rustc_query_impl[3a213cbfc7e81906]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3a213cbfc7e81906]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[5796165e46beff11]::query::erase::Erased<[u8; 8usize]>>
53: 0x71ada4837c25 - rustc_query_system[8d89d55943c1ebd2]::query::plumbing::try_execute_query::<rustc_query_impl[3a213cbfc7e81906]::DynamicConfig<rustc_query_system[8d89d55943c1ebd2]::query::caches::DefIdCache<rustc_middle[5796165e46beff11]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[3a213cbfc7e81906]::plumbing::QueryCtxt, false>
54: 0x71ada483711b - rustc_query_impl[3a213cbfc7e81906]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
55: 0x71ada534af1d - <rustc_metadata[e2b15c2c3f6f00d0]::rmeta::encoder::EncodeContext>::encode_crate_root
56: 0x71ada5c7d5f0 - <rustc_metadata[e2b15c2c3f6f00d0]::rmeta::encoder::encode_metadata::{closure#3} as core[cdc97c9c0b6fd462]::ops::function::FnOnce<(rustc_middle[5796165e46beff11]::ty::context::TyCtxt, &std[c539802e89e8d81a]::path::Path)>>::call_once
57: 0x71ada5c7a830 - rustc_metadata[e2b15c2c3f6f00d0]::rmeta::encoder::encode_metadata
58: 0x71ada575ff98 - rustc_metadata[e2b15c2c3f6f00d0]::fs::encode_and_write_metadata
59: 0x71ada5b0b68a - <rustc_interface[b327675518afe1b5]::queries::Linker>::codegen_and_build_linker
60: 0x71ada5b091c7 - rustc_interface[b327675518afe1b5]::passes::create_and_enter_global_ctxt::<core[cdc97c9c0b6fd462]::option::Option<rustc_interface[b327675518afe1b5]::queries::Linker>, rustc_driver_impl[3a492dd9a06cbf2d]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
61: 0x71ada5aed6e4 - rustc_interface[b327675518afe1b5]::interface::run_compiler::<(), rustc_driver_impl[3a492dd9a06cbf2d]::run_compiler::{closure#0}>::{closure#1}
62: 0x71ada59d29f8 - std[c539802e89e8d81a]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[b327675518afe1b5]::util::run_in_thread_with_globals<rustc_interface[b327675518afe1b5]::util::run_in_thread_pool_with_globals<rustc_interface[b327675518afe1b5]::interface::run_compiler<(), rustc_driver_impl[3a492dd9a06cbf2d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
63: 0x71ada59d26d6 - <<std[c539802e89e8d81a]::thread::Builder>::spawn_unchecked_<rustc_interface[b327675518afe1b5]::util::run_in_thread_with_globals<rustc_interface[b327675518afe1b5]::util::run_in_thread_pool_with_globals<rustc_interface[b327675518afe1b5]::interface::run_compiler<(), rustc_driver_impl[3a492dd9a06cbf2d]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[cdc97c9c0b6fd462]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
64: 0x71ada59d0cfd - std::sys::pal::unix::thread::Thread::new::thread_start::h7f3d8f76868ca167
65: 0x71ad9f29caa4 - start_thread
at ./nptl/pthread_create.c:447:8
66: 0x71ad9f329c3c - clone3
at ./misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:78:0
67: 0x0 - <unknown>
Metadata
Metadata
Assignees
Labels
Category: This is a bug.Issue: A query cycle occurred while none was expectedIssue: Indicates that prioritization has been requested for this issue.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.Performance or correctness regression from stable to nightly.