Open RalfJung opened 2 years ago
An example of code that runs into this comes from this issue:
// check-fail
// This test used to cause an ICE in rustc_mir::interpret::step::eval_rvalue_into_place
#![allow(incomplete_features)]
#![feature(generic_const_exprs)]
use std::fmt::Debug;
use std::marker::PhantomData;
use std::mem::size_of;
struct Inline<T>
where
[u8; size_of::<T>() + 1]: ,
{
_phantom: PhantomData<T>,
buf: [u8; size_of::<T>() + 1],
}
impl<T> Inline<T>
where
[u8; size_of::<T>() + 1]: ,
{
pub fn new(val: T) -> Inline<T> {
todo!()
}
}
fn main() {
let dst = Inline::<dyn Debug>::new(0); //~ ERROR
//~^ ERROR
}
So, looks like a problem with const generics? Something is trying to evaluate size_of::<T>() + 1
despite T: ?Sized
. That makes me wonder which other kind of invalid MIR const generics might execute?
Given that this code is clearly wrong, wouldn't it be better to ICE instead of having this SizeOfUnsizedType
error variant that should not exist? It is marked as an incomplete feature after all, so ICEs are expected. And the current "fix" is papering over the ICE, not fixing the root cause.
Cc @rust-lang/project-const-generics
In fact the really strange part is that the const-eval error is the only error being emitted. It looks like there's literally nothing else preventing the unsized type to flow into a generic context that assumes T: Sized
. How can that be?
EDIT: Ah no, that's wrong. The sized error shows up. But it shows up later. By the time const-eval runs, no error has been emitted yet. Or is that just some error buffering thing? But that can't quite be, "no errors encountered even though delay_span_bug
issued" shows up when I make it do delay_span_bug
and then bug!()
.
This is https://github.com/rust-lang/project-const-generics/issues/37 probably :thinking:
we have to evaluate the constant to check where-clauses but the constant is only well-formed if the where-clauses hold. Evaluating constants when proving where-clauses causes a bunch of issues. This is one of the big generic_const_exprs
issues.
This is https://github.com/rust-lang/project-const-generics/issues/37 probably
Ah yes that sounds similar to what we are seeing.
So... any objections to turning this back into a span_bug!
? The underlying issue is far from fixed by this one extra check (as your issue shows), and I think if we want to get the interpreter into a state where it can run even in the presence of violated where clauses, we need to do some solid planning. I don't even know how many invariants there are that this can break, I worry that it is a lot and we'd get a never-ending stream of ICEs until we identify most of them (and more ICEs each time the interpreter is changed and relies on a new invariant that doesn't have a matching test yet).
yes, I think switching this back to a span_bug!
is good
Stacktrace of https://github.com/rust-lang/rust/issues/97477#issuecomment-1666842779 for findability:
error: internal compiler error: compiler/rustc_const_eval/src/interpret/step.rs:272:21: SizeOf MIR operator called for unsized type dyn Debug
--> /home/matthias/.rustup/toolchains/master/lib/rustlib/src/rust/library/core/src/mem/mod.rs:313:5
|
313 | intrinsics::size_of::<T>()
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
thread 'rustc' panicked at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/compiler/rustc_errors/src/lib.rs:979:33:
Box<dyn Any>
stack backtrace:
0: 0x7f9ab631251c - std::backtrace_rs::backtrace::libunwind::trace::h2e9aca4a2e5f86d8
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x7f9ab631251c - std::backtrace_rs::backtrace::trace_unsynchronized::hceadf256d40c4c78
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7f9ab631251c - std::sys_common::backtrace::_print_fmt::h60f2bef4cb0157c0
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/std/src/sys_common/backtrace.rs:67:5
3: 0x7f9ab631251c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6cea472b207925bd
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/std/src/sys_common/backtrace.rs:44:22
4: 0x7f9ab6377bec - core::fmt::rt::Argument::fmt::h3d728e2a4afb49e2
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/core/src/fmt/rt.rs:138:9
5: 0x7f9ab6377bec - core::fmt::write::h150aa7e0125aab4c
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/core/src/fmt/mod.rs:1094:21
6: 0x7f9ab63050ce - std::io::Write::write_fmt::hae7410621843cc88
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/std/src/io/mod.rs:1714:15
7: 0x7f9ab6312304 - std::sys_common::backtrace::_print::h86eb33b34d1dc616
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/std/src/sys_common/backtrace.rs:47:5
8: 0x7f9ab6312304 - std::sys_common::backtrace::print::hb84e0252de442567
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/std/src/sys_common/backtrace.rs:34:9
9: 0x7f9ab63153fa - std::panicking::panic_hook_with_disk_dump::{{closure}}::hd11a41cc902c2e97
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/std/src/panicking.rs:278:22
10: 0x7f9ab63150e7 - std::panicking::panic_hook_with_disk_dump::hbeb280462d2abb1f
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/std/src/panicking.rs:312:9
11: 0x7f9ab5149a59 - rustc_driver_impl[610dbdd3eb094fb1]::install_ice_hook::{closure#0}
12: 0x7f9ab6315ca0 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h73ce24f3c392592f
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/alloc/src/boxed.rs:2021:9
13: 0x7f9ab6315ca0 - std::panicking::rust_panic_with_hook::he76476954ff54d04
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/std/src/panicking.rs:733:13
14: 0x7f9ab5126061 - std[84884ff0985ea275]::panicking::begin_panic::<rustc_errors[9d4dd5a6d4bf62d1]::ExplicitBug>::{closure#0}
15: 0x7f9ab5124c56 - std[84884ff0985ea275]::sys_common::backtrace::__rust_end_short_backtrace::<std[84884ff0985ea275]::panicking::begin_panic<rustc_errors[9d4dd5a6d4bf62d1]::ExplicitBug>::{closure#0}, !>
16: 0x7f9ab50fd756 - std[84884ff0985ea275]::panicking::begin_panic::<rustc_errors[9d4dd5a6d4bf62d1]::ExplicitBug>
17: 0x7f9ab50cb36e - <rustc_errors[9d4dd5a6d4bf62d1]::HandlerInner>::span_bug::<rustc_span[2109ecbc79ac056c]::span_encoding::Span, alloc[431bee5c62997671]::string::String>
18: 0x7f9ab50cb05f - <rustc_errors[9d4dd5a6d4bf62d1]::Handler>::span_bug::<rustc_span[2109ecbc79ac056c]::span_encoding::Span, alloc[431bee5c62997671]::string::String>
19: 0x7f9ab50d10fb - rustc_middle[317d0c99bf64221a]::util::bug::opt_span_bug_fmt::<rustc_span[2109ecbc79ac056c]::span_encoding::Span>::{closure#0}
20: 0x7f9ab50d112a - rustc_middle[317d0c99bf64221a]::ty::context::tls::with_opt::<rustc_middle[317d0c99bf64221a]::util::bug::opt_span_bug_fmt<rustc_span[2109ecbc79ac056c]::span_encoding::Span>::{closure#0}, !>::{closure#0}
21: 0x7f9ab50d0d78 - rustc_middle[317d0c99bf64221a]::ty::context::tls::with_context_opt::<rustc_middle[317d0c99bf64221a]::ty::context::tls::with_opt<rustc_middle[317d0c99bf64221a]::util::bug::opt_span_bug_fmt<rustc_span[2109ecbc79ac056c]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
22: 0x7f9ab37af1c4 - rustc_middle[317d0c99bf64221a]::util::bug::span_bug_fmt::<rustc_span[2109ecbc79ac056c]::span_encoding::Span>
23: 0x7f9ab3727713 - <rustc_const_eval[81b8e6d870518589]::interpret::eval_context::InterpCx<rustc_const_eval[81b8e6d870518589]::const_eval::machine::CompileTimeInterpreter>>::statement
24: 0x7f9ab36cdc19 - rustc_const_eval[81b8e6d870518589]::const_eval::eval_queries::eval_to_allocation_raw_provider
25: 0x7f9ab325e007 - rustc_query_impl[8362d19b71b00d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8362d19b71b00d]::query_impl::eval_to_allocation_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[317d0c99bf64221a]::query::erase::Erased<[u8; 16usize]>>
26: 0x7f9ab3c333c7 - rustc_query_system[46f106d5b822efb7]::query::plumbing::try_execute_query::<rustc_query_impl[8362d19b71b00d]::DynamicConfig<rustc_query_system[46f106d5b822efb7]::query::caches::DefaultCache<rustc_middle[317d0c99bf64221a]::ty::ParamEnvAnd<rustc_middle[317d0c99bf64221a]::mir::interpret::GlobalId>, rustc_middle[317d0c99bf64221a]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[8362d19b71b00d]::plumbing::QueryCtxt, false>
27: 0x7f9ab3c33049 - rustc_query_impl[8362d19b71b00d]::query_impl::eval_to_allocation_raw::get_query_non_incr::__rust_end_short_backtrace
28: 0x7f9ab4889909 - rustc_const_eval[81b8e6d870518589]::const_eval::eval_to_valtree
29: 0x7f9ab48897a0 - <rustc_const_eval[81b8e6d870518589]::provide::{closure#0} as core[1b2a3d848a2ec87d]::ops::function::FnOnce<(rustc_middle[317d0c99bf64221a]::ty::context::TyCtxt, rustc_middle[317d0c99bf64221a]::ty::ParamEnvAnd<rustc_middle[317d0c99bf64221a]::mir::interpret::GlobalId>)>>::call_once
30: 0x7f9ab45a85e9 - rustc_query_impl[8362d19b71b00d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8362d19b71b00d]::query_impl::eval_to_valtree::dynamic_query::{closure#2}::{closure#0}, rustc_middle[317d0c99bf64221a]::query::erase::Erased<[u8; 24usize]>>
31: 0x7f9ab45a8598 - <rustc_query_impl[8362d19b71b00d]::query_impl::eval_to_valtree::dynamic_query::{closure#2} as core[1b2a3d848a2ec87d]::ops::function::FnOnce<(rustc_middle[317d0c99bf64221a]::ty::context::TyCtxt, rustc_middle[317d0c99bf64221a]::ty::ParamEnvAnd<rustc_middle[317d0c99bf64221a]::mir::interpret::GlobalId>)>>::call_once
32: 0x7f9ab47327c5 - rustc_query_system[46f106d5b822efb7]::query::plumbing::try_execute_query::<rustc_query_impl[8362d19b71b00d]::DynamicConfig<rustc_query_system[46f106d5b822efb7]::query::caches::DefaultCache<rustc_middle[317d0c99bf64221a]::ty::ParamEnvAnd<rustc_middle[317d0c99bf64221a]::mir::interpret::GlobalId>, rustc_middle[317d0c99bf64221a]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[8362d19b71b00d]::plumbing::QueryCtxt, false>
33: 0x7f9ab473245e - rustc_query_impl[8362d19b71b00d]::query_impl::eval_to_valtree::get_query_non_incr::__rust_end_short_backtrace
34: 0x7f9ab39478dc - rustc_middle[317d0c99bf64221a]::query::plumbing::query_get_at::<rustc_query_system[46f106d5b822efb7]::query::caches::DefaultCache<rustc_middle[317d0c99bf64221a]::ty::ParamEnvAnd<rustc_middle[317d0c99bf64221a]::mir::interpret::GlobalId>, rustc_middle[317d0c99bf64221a]::query::erase::Erased<[u8; 24usize]>>>
35: 0x7f9ab3947667 - <rustc_middle[317d0c99bf64221a]::ty::context::TyCtxt>::const_eval_global_id_for_typeck
36: 0x7f9ab3947190 - <rustc_middle[317d0c99bf64221a]::ty::context::TyCtxt>::const_eval_resolve_for_typeck
37: 0x7f9ab35ba0cd - <rustc_infer[4964aa7e7a96197b]::infer::InferCtxt>::const_eval_resolve
38: 0x7f9ab35b7921 - rustc_trait_selection[f5378f77531ecf34]::traits::const_evaluatable::is_const_evaluatable
39: 0x7f9ab3c2dc9b - <rustc_trait_selection[f5378f77531ecf34]::traits::select::SelectionContext>::evaluate_predicate_recursively
40: 0x7f9ab3c298d3 - rustc_traits[3cebf70d64149202]::evaluate_obligation::evaluate_obligation
41: 0x7f9ab31ead7f - rustc_query_impl[8362d19b71b00d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8362d19b71b00d]::query_impl::evaluate_obligation::dynamic_query::{closure#2}::{closure#0}, rustc_middle[317d0c99bf64221a]::query::erase::Erased<[u8; 2usize]>>
42: 0x7f9ab36c0789 - rustc_query_system[46f106d5b822efb7]::query::plumbing::try_execute_query::<rustc_query_impl[8362d19b71b00d]::DynamicConfig<rustc_query_system[46f106d5b822efb7]::query::caches::DefaultCache<rustc_middle[317d0c99bf64221a]::infer::canonical::Canonical<rustc_middle[317d0c99bf64221a]::ty::ParamEnvAnd<rustc_middle[317d0c99bf64221a]::ty::Predicate>>, rustc_middle[317d0c99bf64221a]::query::erase::Erased<[u8; 2usize]>>, false, false, false>, rustc_query_impl[8362d19b71b00d]::plumbing::QueryCtxt, false>
43: 0x7f9ab36c03cf - rustc_query_impl[8362d19b71b00d]::query_impl::evaluate_obligation::get_query_non_incr::__rust_end_short_backtrace
44: 0x7f9ab3ac02dc - <rustc_infer[4964aa7e7a96197b]::infer::InferCtxt as rustc_trait_selection[f5378f77531ecf34]::traits::query::evaluate_obligation::InferCtxtExt>::predicate_may_hold
45: 0x7f9ab3abbe6a - <rustc_infer[4964aa7e7a96197b]::infer::InferCtxt>::probe::<rustc_hir_typeck[7e00dffbed43131e]::method::probe::ProbeResult, <rustc_hir_typeck[7e00dffbed43131e]::method::probe::ProbeContext>::consider_probe::{closure#0}>
46: 0x7f9ab34eeabb - <rustc_hir_typeck[7e00dffbed43131e]::method::probe::ProbeContext>::pick_all_method
47: 0x7f9ab34e6ed6 - <rustc_infer[4964aa7e7a96197b]::infer::InferCtxt>::probe::<core[1b2a3d848a2ec87d]::result::Result<rustc_hir_typeck[7e00dffbed43131e]::method::probe::Pick, rustc_hir_typeck[7e00dffbed43131e]::method::MethodError>, <rustc_hir_typeck[7e00dffbed43131e]::fn_ctxt::FnCtxt>::probe_op<<rustc_hir_typeck[7e00dffbed43131e]::fn_ctxt::FnCtxt>::probe_for_name::{closure#0}, rustc_hir_typeck[7e00dffbed43131e]::method::probe::Pick>::{closure#4}>
48: 0x7f9ab3513e9c - <rustc_hir_typeck[7e00dffbed43131e]::fn_ctxt::FnCtxt>::resolve_fully_qualified_call
49: 0x7f9ab34fdcb6 - <rustc_hir_typeck[7e00dffbed43131e]::fn_ctxt::FnCtxt>::check_expr_path
50: 0x7f9ab351e310 - <rustc_hir_typeck[7e00dffbed43131e]::fn_ctxt::FnCtxt>::check_call
51: 0x7f9ab34c61d9 - <rustc_hir_typeck[7e00dffbed43131e]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
52: 0x7f9ab35196bc - <rustc_hir_typeck[7e00dffbed43131e]::fn_ctxt::FnCtxt>::check_decl
53: 0x7f9ab34f9a33 - <rustc_hir_typeck[7e00dffbed43131e]::fn_ctxt::FnCtxt>::check_block_with_expected
54: 0x7f9ab34c65fb - <rustc_hir_typeck[7e00dffbed43131e]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
55: 0x7f9ab416ef58 - <rustc_hir_typeck[7e00dffbed43131e]::fn_ctxt::FnCtxt>::check_return_expr
56: 0x7f9ab416d798 - rustc_hir_typeck[7e00dffbed43131e]::check::check_fn
57: 0x7f9ab415e7ed - rustc_hir_typeck[7e00dffbed43131e]::typeck
58: 0x7f9ab321a6cc - rustc_query_impl[8362d19b71b00d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8362d19b71b00d]::query_impl::typeck::dynamic_query::{closure#2}::{closure#0}, rustc_middle[317d0c99bf64221a]::query::erase::Erased<[u8; 8usize]>>
59: 0x7f9ab321a6ae - <rustc_query_impl[8362d19b71b00d]::query_impl::typeck::dynamic_query::{closure#2} as core[1b2a3d848a2ec87d]::ops::function::FnOnce<(rustc_middle[317d0c99bf64221a]::ty::context::TyCtxt, rustc_span[2109ecbc79ac056c]::def_id::LocalDefId)>>::call_once
60: 0x7f9ab32fb2dd - rustc_query_system[46f106d5b822efb7]::query::plumbing::try_execute_query::<rustc_query_impl[8362d19b71b00d]::DynamicConfig<rustc_query_system[46f106d5b822efb7]::query::caches::VecCache<rustc_span[2109ecbc79ac056c]::def_id::LocalDefId, rustc_middle[317d0c99bf64221a]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[8362d19b71b00d]::plumbing::QueryCtxt, false>
61: 0x7f9ab4abf96f - rustc_query_impl[8362d19b71b00d]::query_impl::typeck::get_query_non_incr::__rust_end_short_backtrace
62: 0x7f9ab462bf7b - rustc_data_structures[88ad4396f1aa1674]::sync::par_for_each_in::<&[rustc_span[2109ecbc79ac056c]::def_id::LocalDefId], <rustc_middle[317d0c99bf64221a]::hir::map::Map>::par_body_owners<rustc_hir_analysis[6e7d8e1705157800]::check_crate::{closure#7}>::{closure#0}>
63: 0x7f9ab462b0ab - rustc_hir_analysis[6e7d8e1705157800]::check_crate
64: 0x7f9ab462567a - rustc_interface[93d7af63a48c5455]::passes::analysis
65: 0x7f9ab4664aba - rustc_query_impl[8362d19b71b00d]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[8362d19b71b00d]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[317d0c99bf64221a]::query::erase::Erased<[u8; 1usize]>>
66: 0x7f9ab4664aa9 - <rustc_query_impl[8362d19b71b00d]::query_impl::analysis::dynamic_query::{closure#2} as core[1b2a3d848a2ec87d]::ops::function::FnOnce<(rustc_middle[317d0c99bf64221a]::ty::context::TyCtxt, ())>>::call_once
67: 0x7f9ab47ebcd8 - rustc_query_system[46f106d5b822efb7]::query::plumbing::try_execute_query::<rustc_query_impl[8362d19b71b00d]::DynamicConfig<rustc_query_system[46f106d5b822efb7]::query::caches::SingleCache<rustc_middle[317d0c99bf64221a]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[8362d19b71b00d]::plumbing::QueryCtxt, false>
68: 0x7f9ab47eba67 - rustc_query_impl[8362d19b71b00d]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
69: 0x7f9ab47b6e16 - <rustc_middle[317d0c99bf64221a]::ty::context::GlobalCtxt>::enter::<rustc_driver_impl[610dbdd3eb094fb1]::run_compiler::{closure#1}::{closure#2}::{closure#6}, core[1b2a3d848a2ec87d]::result::Result<(), rustc_span[2109ecbc79ac056c]::ErrorGuaranteed>>
70: 0x7f9ab43e01c1 - rustc_span[2109ecbc79ac056c]::set_source_map::<core[1b2a3d848a2ec87d]::result::Result<(), rustc_span[2109ecbc79ac056c]::ErrorGuaranteed>, rustc_interface[93d7af63a48c5455]::interface::run_compiler<core[1b2a3d848a2ec87d]::result::Result<(), rustc_span[2109ecbc79ac056c]::ErrorGuaranteed>, rustc_driver_impl[610dbdd3eb094fb1]::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
71: 0x7f9ab43da690 - std[84884ff0985ea275]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[93d7af63a48c5455]::util::run_in_thread_pool_with_globals<rustc_interface[93d7af63a48c5455]::interface::run_compiler<core[1b2a3d848a2ec87d]::result::Result<(), rustc_span[2109ecbc79ac056c]::ErrorGuaranteed>, rustc_driver_impl[610dbdd3eb094fb1]::run_compiler::{closure#1}>::{closure#0}, core[1b2a3d848a2ec87d]::result::Result<(), rustc_span[2109ecbc79ac056c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[1b2a3d848a2ec87d]::result::Result<(), rustc_span[2109ecbc79ac056c]::ErrorGuaranteed>>
72: 0x7f9ab49baed5 - <<std[84884ff0985ea275]::thread::Builder>::spawn_unchecked_<rustc_interface[93d7af63a48c5455]::util::run_in_thread_pool_with_globals<rustc_interface[93d7af63a48c5455]::interface::run_compiler<core[1b2a3d848a2ec87d]::result::Result<(), rustc_span[2109ecbc79ac056c]::ErrorGuaranteed>, rustc_driver_impl[610dbdd3eb094fb1]::run_compiler::{closure#1}>::{closure#0}, core[1b2a3d848a2ec87d]::result::Result<(), rustc_span[2109ecbc79ac056c]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[1b2a3d848a2ec87d]::result::Result<(), rustc_span[2109ecbc79ac056c]::ErrorGuaranteed>>::{closure#1} as core[1b2a3d848a2ec87d]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
73: 0x7f9ab63202d5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h24d01bd9757d4365
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/alloc/src/boxed.rs:2007:9
74: 0x7f9ab63202d5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h3f16bb51567a3163
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/alloc/src/boxed.rs:2007:9
75: 0x7f9ab63202d5 - std::sys::unix::thread::Thread::new::thread_start::h5a67bb2093ddc843
at /rustc/d190d978649a9bee690ab7d489b59e4c3a78dee4/library/std/src/sys/unix/thread.rs:108:17
76: 0x7f9ab1e9d44b - <unknown>
77: 0x7f9ab1f20e40 - <unknown>
78: 0x0 - <unknown>
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/rustc-ice-2023-08-09T19:49:42.227832878Z-271128.txt` to your bug report
query stack during panic:
#0 [eval_to_allocation_raw] const-evaluating + checking `<impl at blubb.rs:16:1: 16:18>::{constant#0}`
#1 [eval_to_valtree] evaluating type-level constant
#2 [evaluate_obligation] evaluating trait selection obligation `the constant `size_of::<T>() + 1` can be evaluated`
#3 [typeck] type-checking `main`
#4 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to previous error
This is the rustc side of https://github.com/rust-lang/project-const-generics/issues/37.