blob: c547b54e16b01c92c1e806c794dca5203f7794bf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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() {}
 
  |