Open
Description
auto-reduced (treereduce-rust):
trait Foo {
fn foo<'a>(&'a self) -> <&'a impl Sized as Bar>::Output;
}
trait Bar {
type Output;
}
struct X(i32);
impl<'a> Bar for &'a X {
type Output = &'a i32;
}
impl Foo for X {
fn foo<'a>(&'a self) -> <&'a Self as Bar>::Output {
&self.0
}
}
original:
fn main() {
let x = X(15);
let y = x.foo();
println!("{:?}",y);
}
trait Foo {
fn foo<'a>(&'a self) -> <&'a impl Sized as Bar>::Output;
}
trait Bar {
type Output;
}
struct X(i32);
impl<'a> Bar for &'a X {
type Output = &'a i32;
}
impl Foo for X {
fn foo<'a>(&'a self) -> <&'a Self as Bar>::Output {
&self.0
}
}
Version information
rustc 1.81.0-nightly (3d5d7a24f 2024-06-19)
binary: rustc
commit-hash: 3d5d7a24f76006b391d8a53d903ae64c1b4a52d2
commit-date: 2024-06-19
host: x86_64-unknown-linux-gnu
release: 1.81.0-nightly
LLVM version: 18.1.7
Command:
/home/matthias/.rustup/toolchains/master/bin/rustc
Program output
error[E0667]: `impl Trait` is not allowed in path parameters
--> /tmp/icemaker_global_tempdir.KXWchhk7HuyN/rustc_testrunner_tmpdir_reporting.A8BXzoc3mNcQ/mvce.rs:2:34
|
2 | fn foo<'a>(&'a self) -> <&'a impl Sized as Bar>::Output;
| ^^^^^^^^^^
error[E0601]: `main` function not found in crate `mvce`
--> /tmp/icemaker_global_tempdir.KXWchhk7HuyN/rustc_testrunner_tmpdir_reporting.A8BXzoc3mNcQ/mvce.rs:19:2
|
19 | }
| ^ consider adding a `main` function to `/tmp/icemaker_global_tempdir.KXWchhk7HuyN/rustc_testrunner_tmpdir_reporting.A8BXzoc3mNcQ/mvce.rs`
thread 'rustc' panicked at compiler/rustc_hir_analysis/src/check/compare_impl_item.rs:553:13:
X should not have been constrained via normalization
stack backtrace:
0: 0x7f664e563915 - std::backtrace_rs::backtrace::libunwind::trace::h7710708045c6b905
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
1: 0x7f664e563915 - std::backtrace_rs::backtrace::trace_unsynchronized::h877fe1ea27df51dc
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7f664e563915 - std::sys::backtrace::_print_fmt::ha3ebaa2154f7d3cf
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/std/src/sys/backtrace.rs:68:5
3: 0x7f664e563915 - <std::sys::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hfe4a08ea96301f2e
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/std/src/sys/backtrace.rs:44:22
4: 0x7f664e5b44bb - core::fmt::rt::Argument::fmt::h2294c3ac43b5ff98
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/core/src/fmt/rt.rs:165:63
5: 0x7f664e5b44bb - core::fmt::write::h77cb689ff8a7e181
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/core/src/fmt/mod.rs:1168:21
6: 0x7f664e5585af - std::io::Write::write_fmt::hb5a06bc50edaab60
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/std/src/io/mod.rs:1835:15
7: 0x7f664e5636ee - std::sys::backtrace::_print::h1e23385cc7309809
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/std/src/sys/backtrace.rs:47:5
8: 0x7f664e5636ee - std::sys::backtrace::print::h2eec07d683dcedb2
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/std/src/sys/backtrace.rs:34:9
9: 0x7f664e566129 - std::panicking::default_hook::{{closure}}::hab98a779bfa94b9a
10: 0x7f664e565ecc - std::panicking::default_hook::he086b8d50b533063
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/std/src/panicking.rs:292:9
11: 0x7f664ab5f49f - std[dbc24bd242c6e4df]::panicking::update_hook::<alloc[37b1fde2ea0a167a]::boxed::Box<rustc_driver_impl[c1f27b1b5d1e2f7b]::install_ice_hook::{closure#0}>>::{closure#0}
12: 0x7f664e566a4f - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h5a3e80ce9f8fca6a
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/alloc/src/boxed.rs:2076:9
13: 0x7f664e566a4f - std::panicking::rust_panic_with_hook::h2d53698c2dcbf3bc
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/std/src/panicking.rs:804:13
14: 0x7f664e566677 - std::panicking::begin_panic_handler::{{closure}}::h3b368e6c6e10fc40
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/std/src/panicking.rs:670:13
15: 0x7f664e563dd9 - std::sys::backtrace::__rust_end_short_backtrace::hefb4b0a87b200300
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/std/src/sys/backtrace.rs:171:18
16: 0x7f664e566304 - rust_begin_unwind
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/std/src/panicking.rs:661:5
17: 0x7f664e5b0a73 - core::panicking::panic_fmt::h915bf95191b1f9f2
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/core/src/panicking.rs:74:14
18: 0x7f664ad0a34f - rustc_hir_analysis[9774bcfb3f362306]::check::compare_impl_item::collect_return_position_impl_trait_in_trait_tys::{closure#0}
19: 0x7f664b4e94f3 - rustc_query_impl[856b5675e5c7de0f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[856b5675e5c7de0f]::query_impl::collect_return_position_impl_trait_in_trait_tys::dynamic_query::{closure#2}::{closure#0}, rustc_middle[8eb79f70a5820685]::query::erase::Erased<[u8; 8usize]>>
20: 0x7f664c0a041b - rustc_query_system[a3103274ffce3a93]::query::plumbing::try_execute_query::<rustc_query_impl[856b5675e5c7de0f]::DynamicConfig<rustc_query_system[a3103274ffce3a93]::query::caches::DefIdCache<rustc_middle[8eb79f70a5820685]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[856b5675e5c7de0f]::plumbing::QueryCtxt, false>
21: 0x7f664b4eb798 - rustc_query_impl[856b5675e5c7de0f]::query_impl::collect_return_position_impl_trait_in_trait_tys::get_query_non_incr::__rust_end_short_backtrace
22: 0x7f664c7e2f40 - rustc_middle[8eb79f70a5820685]::query::plumbing::query_get_at::<rustc_query_system[a3103274ffce3a93]::query::caches::DefIdCache<rustc_middle[8eb79f70a5820685]::query::erase::Erased<[u8; 8usize]>>>
23: 0x7f6649950e32 - rustc_hir_analysis[9774bcfb3f362306]::collect::type_of::type_of
24: 0x7f664c0a182a - rustc_query_impl[856b5675e5c7de0f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[856b5675e5c7de0f]::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[8eb79f70a5820685]::query::erase::Erased<[u8; 8usize]>>
25: 0x7f664c0a041b - rustc_query_system[a3103274ffce3a93]::query::plumbing::try_execute_query::<rustc_query_impl[856b5675e5c7de0f]::DynamicConfig<rustc_query_system[a3103274ffce3a93]::query::caches::DefIdCache<rustc_middle[8eb79f70a5820685]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[856b5675e5c7de0f]::plumbing::QueryCtxt, false>
26: 0x7f664c09ffbb - rustc_query_impl[856b5675e5c7de0f]::query_impl::type_of::get_query_non_incr::__rust_end_short_backtrace
27: 0x7f664c7e2f40 - rustc_middle[8eb79f70a5820685]::query::plumbing::query_get_at::<rustc_query_system[a3103274ffce3a93]::query::caches::DefIdCache<rustc_middle[8eb79f70a5820685]::query::erase::Erased<[u8; 8usize]>>>
28: 0x7f6649959866 - rustc_hir_analysis[9774bcfb3f362306]::check::wfcheck::check_well_formed
29: 0x7f664c3ecaa9 - rustc_query_impl[856b5675e5c7de0f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[856b5675e5c7de0f]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[8eb79f70a5820685]::query::erase::Erased<[u8; 1usize]>>
30: 0x7f664c3ecd2a - rustc_query_system[a3103274ffce3a93]::query::plumbing::try_execute_query::<rustc_query_impl[856b5675e5c7de0f]::DynamicConfig<rustc_query_system[a3103274ffce3a93]::query::caches::VecCache<rustc_hir[9fcca5f37a823dfc]::hir_id::OwnerId, rustc_middle[8eb79f70a5820685]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[856b5675e5c7de0f]::plumbing::QueryCtxt, false>
31: 0x7f664c3eca86 - rustc_query_impl[856b5675e5c7de0f]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
32: 0x7f664c3ed801 - rustc_hir_analysis[9774bcfb3f362306]::check::wfcheck::check_mod_type_wf
33: 0x7f664c3ed647 - rustc_query_impl[856b5675e5c7de0f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[856b5675e5c7de0f]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[8eb79f70a5820685]::query::erase::Erased<[u8; 1usize]>>
34: 0x7f664ca886f0 - rustc_query_system[a3103274ffce3a93]::query::plumbing::try_execute_query::<rustc_query_impl[856b5675e5c7de0f]::DynamicConfig<rustc_query_system[a3103274ffce3a93]::query::caches::DefaultCache<rustc_span[6d5d3be9d9ece40]::def_id::LocalModDefId, rustc_middle[8eb79f70a5820685]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[856b5675e5c7de0f]::plumbing::QueryCtxt, false>
35: 0x7f664ca88499 - rustc_query_impl[856b5675e5c7de0f]::query_impl::check_mod_type_wf::get_query_non_incr::__rust_end_short_backtrace
36: 0x7f664c3ff44c - rustc_hir_analysis[9774bcfb3f362306]::check_crate
37: 0x7f664ca03747 - rustc_interface[744b99f34e0a116f]::passes::analysis
38: 0x7f664ca03287 - rustc_query_impl[856b5675e5c7de0f]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[856b5675e5c7de0f]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[8eb79f70a5820685]::query::erase::Erased<[u8; 1usize]>>
39: 0x7f664ce532a5 - rustc_query_system[a3103274ffce3a93]::query::plumbing::try_execute_query::<rustc_query_impl[856b5675e5c7de0f]::DynamicConfig<rustc_query_system[a3103274ffce3a93]::query::caches::SingleCache<rustc_middle[8eb79f70a5820685]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[856b5675e5c7de0f]::plumbing::QueryCtxt, false>
40: 0x7f664ce5300f - rustc_query_impl[856b5675e5c7de0f]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
41: 0x7f664ccf6692 - rustc_interface[744b99f34e0a116f]::interface::run_compiler::<core[ac7617a62e79589c]::result::Result<(), rustc_span[6d5d3be9d9ece40]::ErrorGuaranteed>, rustc_driver_impl[c1f27b1b5d1e2f7b]::run_compiler::{closure#0}>::{closure#1}
42: 0x7f664cce40e7 - std[dbc24bd242c6e4df]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[744b99f34e0a116f]::util::run_in_thread_with_globals<rustc_interface[744b99f34e0a116f]::util::run_in_thread_pool_with_globals<rustc_interface[744b99f34e0a116f]::interface::run_compiler<core[ac7617a62e79589c]::result::Result<(), rustc_span[6d5d3be9d9ece40]::ErrorGuaranteed>, rustc_driver_impl[c1f27b1b5d1e2f7b]::run_compiler::{closure#0}>::{closure#1}, core[ac7617a62e79589c]::result::Result<(), rustc_span[6d5d3be9d9ece40]::ErrorGuaranteed>>::{closure#0}, core[ac7617a62e79589c]::result::Result<(), rustc_span[6d5d3be9d9ece40]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[ac7617a62e79589c]::result::Result<(), rustc_span[6d5d3be9d9ece40]::ErrorGuaranteed>>
43: 0x7f664cce3eaa - <<std[dbc24bd242c6e4df]::thread::Builder>::spawn_unchecked_<rustc_interface[744b99f34e0a116f]::util::run_in_thread_with_globals<rustc_interface[744b99f34e0a116f]::util::run_in_thread_pool_with_globals<rustc_interface[744b99f34e0a116f]::interface::run_compiler<core[ac7617a62e79589c]::result::Result<(), rustc_span[6d5d3be9d9ece40]::ErrorGuaranteed>, rustc_driver_impl[c1f27b1b5d1e2f7b]::run_compiler::{closure#0}>::{closure#1}, core[ac7617a62e79589c]::result::Result<(), rustc_span[6d5d3be9d9ece40]::ErrorGuaranteed>>::{closure#0}, core[ac7617a62e79589c]::result::Result<(), rustc_span[6d5d3be9d9ece40]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[ac7617a62e79589c]::result::Result<(), rustc_span[6d5d3be9d9ece40]::ErrorGuaranteed>>::{closure#2} as core[ac7617a62e79589c]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
44: 0x7f664e5708cb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h98214f1bce33fab6
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/alloc/src/boxed.rs:2062:9
45: 0x7f664e5708cb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h3f9121c2985de03a
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/alloc/src/boxed.rs:2062:9
46: 0x7f664e5708cb - std::sys::pal::unix::thread::Thread::new::thread_start::h4f5fdfa8e67af1f6
at /rustc/3d5d7a24f76006b391d8a53d903ae64c1b4a52d2/library/std/src/sys/pal/unix/thread.rs:108:17
47: 0x7f66476a6ded - <unknown>
48: 0x7f664772a0dc - <unknown>
49: 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 make sure that you have updated to the latest nightly
note: rustc 1.81.0-nightly (3d5d7a24f 2024-06-19) running on x86_64-unknown-linux-gnu
query stack during panic:
#0 [collect_return_position_impl_trait_in_trait_tys] comparing an impl and trait method signature, inferring any hidden `impl Trait` types in the process
#1 [type_of] computing type of `<impl at /tmp/icemaker_global_tempdir.KXWchhk7HuyN/rustc_testrunner_tmpdir_reporting.A8BXzoc3mNcQ/mvce.rs:15:1: 15:15>::{synthetic#0}`
end of query stack
error: aborting due to 2 previous errors
Some errors have detailed explanations: E0601, E0667.
For more information about an error, try `rustc --explain E0601`.