11735: Fix const generic panic, again r=lnicola a=HKalbasi

fix https://github.com/rust-analyzer/rust-analyzer/pull/11734#issuecomment-1070526085

Co-authored-by: hkalbasi <hamidrezakalbasi@protonmail.com>
This commit is contained in:
bors[bot] 2022-03-17 09:23:26 +00:00 committed by GitHub
commit 98143da799
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 1 deletions

View File

@ -712,7 +712,7 @@ impl<'a> TyLoweringContext<'a> {
.filter(|arg| !matches!(arg, GenericArg::Lifetime(_))) .filter(|arg| !matches!(arg, GenericArg::Lifetime(_)))
.skip(skip) .skip(skip)
.take(expected_num) .take(expected_num)
.zip(def_generics.iter_id().skip(skip)) .zip(def_generics.iter_id().skip(parent_params + skip))
{ {
if let Some(x) = generic_arg_to_chalk( if let Some(x) = generic_arg_to_chalk(
self.db, self.db,

View File

@ -1454,3 +1454,26 @@ fn regression_11688_1() {
"#, "#,
); );
} }
#[test]
fn regression_11688_2() {
check_types(
r#"
union MaybeUninit<T> {
uninit: (),
value: T,
}
impl<T> MaybeUninit<T> {
fn uninit_array<const LEN: usize>() -> [Self; LEN] {
loop {}
}
}
fn main() {
let x = MaybeUninit::<i32>::uninit_array::<1>();
//^ [MaybeUninit<i32>; 1]
}
"#,
);
}