Closed
Description
Code
#![feature(never_patterns)]
#![allow(incomplete_features)]
fn by_value(s: usize) {
|| { let ! = s; };
}
fn main() {}
Meta
rustc --version --verbose
:
rustc 1.86.0-nightly (6171d944a 2025-02-10)
binary: rustc
commit-hash: 6171d944aea415a3023d4262e0895aa3b18c771f
commit-date: 2025-02-10
host: x86_64-apple-darwin
release: 1.86.0-nightly
LLVM version: 19.1.7
Error output
Command: rustc --edition=2021
This also ICEs with --edition=2024
error: mismatched types
--> other.rs:5:14
|
5 | || { let ! = s; };
| ^ a never pattern must be used on an uninhabited type
|
= note: the matched value is of type `usize`
thread 'rustc' panicked at compiler/rustc_mir_build/src/builder/matches/mod.rs:2099:44:
called `Option::unwrap()` on a `None` value
Backtrace
thread 'rustc' panicked at compiler/rustc_mir_build/src/builder/matches/mod.rs:2099:44:
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::builder::Builder>::match_candidates_inner
5: <rustc_mir_build::builder::Builder>::lower_match_tree
6: <rustc_mir_build::builder::Builder>::place_into_pattern
7: <rustc_mir_build::builder::Builder>::ast_block_stmts
8: <rustc_mir_build::builder::Builder>::in_scope::<<rustc_mir_build::builder::Builder>::ast_block::{closure#0}, ()>
9: <rustc_mir_build::builder::Builder>::expr_into_dest
10: <rustc_mir_build::builder::Builder>::as_temp_inner
11: <rustc_mir_build::builder::Builder>::expr_into_dest
12: <rustc_mir_build::builder::Builder>::expr_into_dest::{closure#0}
13: <rustc_mir_build::builder::Builder>::expr_into_dest
14: rustc_mir_build::builder::construct_fn
15: rustc_mir_build::builder::build_mir
16: rustc_mir_transform::mir_built
[... omitted 1 frame ...]
17: <rustc_mir_build::check_unsafety::UnsafetyVisitor>::visit_inner_body
18: <rustc_mir_build::check_unsafety::UnsafetyVisitor as rustc_middle::thir::visit::Visitor>::visit_expr
19: <rustc_mir_build::check_unsafety::UnsafetyVisitor as rustc_middle::thir::visit::Visitor>::visit_expr
20: <rustc_mir_build::check_unsafety::UnsafetyVisitor as rustc_middle::thir::visit::Visitor>::visit_block
21: <rustc_mir_build::check_unsafety::UnsafetyVisitor as rustc_middle::thir::visit::Visitor>::visit_expr
22: <rustc_mir_build::check_unsafety::UnsafetyVisitor as rustc_middle::thir::visit::Visitor>::visit_expr
23: rustc_mir_build::check_unsafety::check_unsafety
[... omitted 1 frame ...]
24: <rustc_middle::hir::map::Map>::par_body_owners::<rustc_interface::passes::run_required_analyses::{closure#2}::{closure#0}>::{closure#0}
25: rustc_interface::passes::run_required_analyses
26: rustc_interface::passes::analysis
[... omitted 1 frame ...]
27: rustc_interface::passes::create_and_enter_global_ctxt::<core::option::Option<rustc_interface::queries::Linker>, rustc_driver_impl::run_compiler::{closure#0}::{closure#2}>
28: rustc_interface::interface::run_compiler::<(), rustc_driver_impl::run_compiler::{closure#0}>::{closure#1}
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 make sure that you have updated to the latest nightly
note: please attach the file at `/Volumes/T7/workspace/250203 scratch/closerable_정리/scratch/rustc-ice-2025-02-11T06_30_38-34940.txt` to your bug report
query stack during panic:
#0 [mir_built] building MIR for `by_value::{closure#0}`
#1 [check_unsafety] unsafety-checking `by_value`
#2 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 1 previous error
Notes
- ICE location:
compiler/rustc_mir_build/src/builder/matches/mod.rs Line-2099
rust/compiler/rustc_mir_build/src/builder/matches/mod.rs
Lines 2094 to 2103 in 6171d94
- similar issues
- issue-133063
- issue-133779
@rustbot label +F-never_patterns