Repository navigation
Panicked at compiler/rustc_mir_build/src/builder/matches/match_pair.rs:256:37: refutable patterns must have captured a place #162801
Copy link
Copy link
Closed as duplicate
Closed as duplicate
Copy link
Labels
C-bugCategory: This is a bug.Category: This is a bug.F-type_alias_impl_trait`#[feature(type_alias_impl_trait)]``#[feature(type_alias_impl_trait)]`I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.fixed-by-next-solverFixed by the next-generation trait solver, `-Znext-solver`.Fixed by the next-generation trait solver, `-Znext-solver`.
Description
The following code:
#![feature(type_alias_impl_trait)]
fn enum_upvar() {
type T = impl Copy;
let foo: T = Some((1u32, 2u32));
let x = move || match foo {
None => (),
Some((a, b)) => (),
};
}
fn main() {}Resulted in this output:
thread 'rustc' (3295760) panicked at compiler/rustc_mir_build/src/builder/matches/match_pair.rs:256:37:
refutable patterns must have captured a place
stack backtrace:
0: __rustc::rust_begin_unwind
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/std/src/panicking.rs:679:5
1: core::panicking::panic_fmt
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/core/src/panicking.rs:80:14
2: core::panicking::panic_display::<&str>
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/core/src/panicking.rs:259:5
3: core::option::expect_failed
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/core/src/option.rs:2257:5
4: <core::option::Option<rustc_middle::mir::syntax::Place>>::expect
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/core/src/option.rs:969:21
5: <rustc_mir_build::builder::matches::match_pair::InterPat>::lower_thir_pat::{closure#1}
at /home/fuzz/WorkSpace/fusion-fuzz/projects/rust/rust-src/compiler/rustc_mir_build/src/builder/matches/match_pair.rs:256:37
6: <rustc_mir_build::builder::matches::match_pair::InterPat>::lower_thir_pat
at /home/fuzz/WorkSpace/fusion-fuzz/projects/rust/rust-src/compiler/rustc_mir_build/src/builder/matches/match_pair.rs:403:54
7: <rustc_mir_build::builder::matches::FlatPat>::new
at /home/fuzz/WorkSpace/fusion-fuzz/projects/rust/rust-src/compiler/rustc_mir_build/src/builder/matches/match_pair.rs:80:25
8: <rustc_mir_build::builder::matches::Candidate>::new
at /home/fuzz/WorkSpace/fusion-fuzz/projects/rust/rust-src/compiler/rustc_mir_build/src/builder/matches/mod.rs:1076:13
9: <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}
at /home/fuzz/WorkSpace/fusion-fuzz/projects/rust/rust-src/compiler/rustc_mir_build/src/builder/matches/mod.rs:1563:17
10: core::iter::adapters::map::map_fold::<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard), rustc_mir_build::builder::matches::Candidate, (), <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}, core::iter::traits::iterator::Iterator::for_each::call<rustc_mir_build::builder::matches::Candidate, <alloc::vec::Vec<rustc_mir_build::builder::matches::Candidate>>::extend_trusted<core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard)>, <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}>>::{closure#0}>::{closure#0}>::{closure#0}
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/core/src/iter/adapters/map.rs:88:28
11: <alloc::vec::into_iter::IntoIter<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard)> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::adapters::map::map_fold<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard), rustc_mir_build::builder::matches::Candidate, (), <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}, core::iter::traits::iterator::Iterator::for_each::call<rustc_mir_build::builder::matches::Candidate, <alloc::vec::Vec<rustc_mir_build::builder::matches::Candidate>>::extend_trusted<core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard)>, <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}>>::{closure#0}>::{closure#0}>::{closure#0}>
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/alloc/src/vec/into_iter.rs:367:25
12: <core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard)>, <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustc_mir_build::builder::matches::Candidate, <alloc::vec::Vec<rustc_mir_build::builder::matches::Candidate>>::extend_trusted<core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard)>, <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}>>::{closure#0}>::{closure#0}>
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/core/src/iter/adapters/map.rs:128:19
13: <core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard)>, <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}> as core::iter::traits::iterator::Iterator>::for_each::<<alloc::vec::Vec<rustc_mir_build::builder::matches::Candidate>>::extend_trusted<core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard)>, <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}>>::{closure#0}>
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/core/src/iter/traits/iterator.rs:887:14
14: <alloc::vec::Vec<rustc_mir_build::builder::matches::Candidate>>::extend_trusted::<core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard)>, <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}>>
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/alloc/src/vec/mod.rs:4132:26
15: <alloc::vec::Vec<rustc_mir_build::builder::matches::Candidate> as alloc::vec::spec_extend::SpecExtend<rustc_mir_build::builder::matches::Candidate, core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard)>, <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}>>>::spec_extend
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/alloc/src/vec/spec_extend.rs:27:14
16: <alloc::vec::Vec<rustc_mir_build::builder::matches::Candidate> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<rustc_mir_build::builder::matches::Candidate, core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard)>, <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}>>>::from_iter
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/alloc/src/vec/spec_from_iter_nested.rs:60:16
17: <alloc::vec::Vec<rustc_mir_build::builder::matches::Candidate> as alloc::vec::spec_from_iter::SpecFromIter<rustc_mir_build::builder::matches::Candidate, core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard)>, <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}>>>::from_iter
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/alloc/src/vec/in_place_collect.rs:245:9
18: <alloc::vec::Vec<rustc_mir_build::builder::matches::Candidate> as core::iter::traits::collect::FromIterator<rustc_mir_build::builder::matches::Candidate>>::from_iter::<core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard)>, <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}>>
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/alloc/src/vec/mod.rs:3996:9
19: <core::iter::adapters::map::Map<alloc::vec::into_iter::IntoIter<(&rustc_middle::thir::Pat, rustc_mir_build::builder::matches::HasMatchGuard)>, <rustc_mir_build::builder::Builder>::lower_match_tree::{closure#0}> as core::iter::traits::iterator::Iterator>::collect::<alloc::vec::Vec<rustc_mir_build::builder::matches::Candidate>>
at /rustc/cbae9b4cae2b108f6a3d18cfe6075714bb739463/library/core/src/iter/traits/iterator.rs:2086:9
20: <rustc_mir_build::builder::Builder>::lower_match_tree
at /home/fuzz/WorkSpace/fusion-fuzz/projects/rust/rust-src/compiler/rustc_mir_build/src/builder/matches/mod.rs:1565:14
21: <rustc_mir_build::builder::Builder>::match_expr
at /home/fuzz/WorkSpace/fusion-fuzz/projects/rust/rust-src/compiler/rustc_mir_build/src/builder/matches/mod.rs:356:31
22: <rustc_mir_build::builder::Builder>::expr_into_dest
at /home/fuzz/WorkSpace/fusion-fuzz/projects/rust/rust-src/compiler/rustc_mir_build/src/builder/expr/into.rs:59:22
To reproduce: rustc --edition=2021 -Znext-solver=no ./min.rs
This bug was found by fusion-fuzz
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
C-bugCategory: This is a bug.Category: This is a bug.F-type_alias_impl_trait`#[feature(type_alias_impl_trait)]``#[feature(type_alias_impl_trait)]`I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.fixed-by-next-solverFixed by the next-generation trait solver, `-Znext-solver`.Fixed by the next-generation trait solver, `-Znext-solver`.
Activity
matthiaskrgr commentedon Sep 15, 2026
duplicate of #119786 ?
Noneincompiler/rustc_mir_build/src/build/matches/mod.rs#119786