diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-04-27 14:42:38 +0200 |
|---|---|---|
| committer | Matthias Krüger <matthias.krueger@famsik.de> | 2024-04-28 10:23:10 +0200 |
| commit | f483971b87bae0c236b41185f298e4524155e2d2 (patch) | |
| tree | 804ba9b573d3f5802df7073fa8912a929e002f8e | |
| parent | 012f9e26acbdab1c34b8ba40ccb44788a822d1d8 (diff) | |
| download | rust-f483971b87bae0c236b41185f298e4524155e2d2.tar.gz rust-f483971b87bae0c236b41185f298e4524155e2d2.zip | |
add test for ICE failed to resolve instance for <[f32; 2] as CrossProduct
Fixes https://github.com/rust-lang/rust/issues/111667
| -rw-r--r-- | tests/ui/const-generics/generic_const_exprs/failed-to-resolve-instance-ice-111667.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/ui/const-generics/generic_const_exprs/failed-to-resolve-instance-ice-111667.rs b/tests/ui/const-generics/generic_const_exprs/failed-to-resolve-instance-ice-111667.rs new file mode 100644 index 00000000000..c547b54e16b --- /dev/null +++ b/tests/ui/const-generics/generic_const_exprs/failed-to-resolve-instance-ice-111667.rs @@ -0,0 +1,18 @@ +// issue rust-lang/rust#111667 +// ICE failed to resolve instance for <[f32; 2] as CrossProduct .. +//@ check-pass + +#![feature(generic_const_exprs)] +#![allow(incomplete_features)] + +pub trait CrossProduct<'a, T, R> { + fn cross(&'a self, t: &'a T) -> R; +} + +impl<'a, T, U, const N: usize> CrossProduct<'a, [U; N], [(&'a T, &'a U); N * N]> for [T; N] { + fn cross(&'a self, us: &'a [U; N]) -> [(&'a T, &'a U); N * N] { + std::array::from_fn(|i| (&self[i / N], &us[i % N])) + } +} + +pub fn main() {} |
