thread 'rustc' panicked at compiler/rustc_mir_build/src/build/expr/as_place.rs:253:31:
called `Option::unwrap()` on a `None` value
stack backtrace:
0: _rust_begin_unwind
1: core::panicking::panic_fmt
2: core::panicking::panic
3: core::option::unwrap_failed
4: <rustc_mir_build::build::Builder>::expr_into_dest
5: <rustc_mir_build::build::Builder>::as_temp_inner
6: <rustc_mir_build::build::Builder>::as_operand
7: <rustc_mir_build::build::Builder>::as_operand
8: <rustc_mir_build::build::Builder>::as_rvalue
9: <rustc_mir_build::build::Builder>::expr_into_dest
10: <rustc_mir_build::build::Builder>::as_temp_inner
11: <rustc_mir_build::build::Builder>::as_operand
12: <rustc_mir_build::build::Builder>::as_call_operand
13: <rustc_mir_build::build::Builder>::as_call_operand
14: <rustc_mir_build::build::Builder>::expr_into_dest
15: <rustc_mir_build::build::Builder>::as_temp_inner
16: <rustc_mir_build::build::Builder>::as_operand
17: <rustc_mir_build::build::Builder>::as_operand
18: <rustc_mir_build::build::Builder>::expr_into_dest
19: <rustc_mir_build::build::Builder>::expr_into_dest::{closure#0}
20: <rustc_mir_build::build::Builder>::expr_into_dest
21: rustc_mir_build::build::construct_fn
22: rustc_mir_build::build::mir_build
23: rustc_mir_transform::mir_built
[... omitted 1 frame ...]
24: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>>
25: rustc_mir_transform::ffi_unwind_calls::has_ffi_unwind_calls
[... omitted 1 frame ...]
26: rustc_mir_transform::mir_promoted
[... omitted 2 frames ...]
27: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 16]>>>
28: rustc_borrowck::mir_borrowck
[... omitted 1 frame ...]
29: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>>
30: <rustc_borrowck::type_check::TypeChecker>::prove_closure_bounds
31: <rustc_borrowck::type_check::TypeChecker>::check_rvalue
32: <rustc_borrowck::type_check::TypeChecker>::typeck_mir
33: rustc_borrowck::type_check::type_check
34: rustc_borrowck::nll::compute_regions
35: rustc_borrowck::do_mir_borrowck
36: rustc_borrowck::mir_borrowck
[... omitted 1 frame ...]
37: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::VecCache<rustc_span::def_id::LocalDefId, rustc_middle::query::erase::Erased<[u8; 8]>>>
38: rustc_hir_analysis::collect::type_of::type_of_opaque
[... omitted 1 frame ...]
39: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 8]>>>
40: rustc_hir_analysis::collect::type_of::type_of
[... omitted 1 frame ...]
41: rustc_middle::query::plumbing::query_get_at::<rustc_query_system::query::caches::DefIdCache<rustc_middle::query::erase::Erased<[u8; 8]>>>
42: rustc_hir_analysis::check::check::check_item_type
43: rustc_hir_analysis::check::wfcheck::check_well_formed
[... omitted 1 frame ...]
44: rustc_middle::query::plumbing::query_ensure_error_guaranteed::<rustc_query_system::query::caches::VecCache<rustc_hir::hir_id::OwnerId, rustc_middle::query::erase::Erased<[u8; 1]>>, ()>
45: rustc_hir_analysis::check::wfcheck::check_mod_type_wf
[... omitted 1 frame ...]
46: rustc_hir_analysis::check_crate
47: rustc_interface::passes::analysis
[... omitted 1 frame ...]
48: <rustc_interface::queries::QueryResult<&rustc_middle::ty::context::GlobalCtxt>>::enter::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}::{closure#1}::{closure#3}>
49: rustc_interface::interface::run_compiler::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#0}>::{closure#0}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
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 `/Volumes/T7/workspace/placeholder_rustexec/0329/rustc-ice-2024-03-31T03_52_25-27883.txt` to your bug report
query stack during panic:
#0 [mir_built] building MIR for `handlers::c::{closure#0}`
#1 [has_ffi_unwind_calls] checking if `handlers::c::{closure#0}` contains FFI-unwind calls
#2 [mir_promoted] promoting constants in MIR for `handlers::c::{closure#0}`
#3 [mir_borrowck] borrow-checking `handlers::c::{closure#0}`
#4 [mir_borrowck] borrow-checking `handlers::c`
#5 [type_of_opaque] computing type of opaque `handlers::c::{opaque#0}`
#6 [type_of] computing type of `handlers::c::{opaque#0}`
#7 [check_well_formed] checking that `handlers::c::{opaque#0}` is well-formed
#8 [check_mod_type_wf] checking that types are well-formed in module `handlers`
#9 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0106`.
Code
(slightly reduced)
(original code)
Code
Note
pub struct C(B);has been modified topub struct C(&'a ());.Meta
rustc --version --verbose:Command
rustc --edition=2021Error output
Backtrace
Related Issues
Option::unwrap()on aNonevalue #115658 (ICE-loc) also points to the same ICE location.