mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-28 20:16:58 +03:00
Structurally resolve before builtin_index in EUV
This commit is contained in:
@@ -1741,7 +1741,11 @@ fn cat_pattern<F>(
|
||||
}
|
||||
|
||||
PatKind::Slice(before, ref slice, after) => {
|
||||
let Some(element_ty) = place_with_id.place.ty().builtin_index() else {
|
||||
let Some(element_ty) = self
|
||||
.cx
|
||||
.try_structurally_resolve_type(pat.span, place_with_id.place.ty())
|
||||
.builtin_index()
|
||||
else {
|
||||
debug!("explicit index of non-indexable type {:?}", place_with_id);
|
||||
return Err(self
|
||||
.cx
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
//@ compile-flags: -Znext-solver
|
||||
//@ check-pass
|
||||
|
||||
// Fixes a regression in `rustc_attr` where we weren't normalizing the
|
||||
// output type of a index operator performing a `Ty::builtin_index` call,
|
||||
// leading to an ICE.
|
||||
|
||||
fn main() {
|
||||
let mut vec = [1, 2, 3];
|
||||
let x = || {
|
||||
let [..] = &vec[..];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user