Add a regression test for issue-84408
This commit is contained in:
parent
61e171566a
commit
c660a51cc4
38
src/test/ui/const-generics/issues/issue-84408.rs
Normal file
38
src/test/ui/const-generics/issues/issue-84408.rs
Normal file
@ -0,0 +1,38 @@
|
||||
// Regression test for #84408.
|
||||
// check-pass
|
||||
|
||||
#![feature(const_generics, const_evaluatable_checked)]
|
||||
#![allow(incomplete_features)]
|
||||
|
||||
trait Melon<const X: usize> {
|
||||
fn new(arr: [i32; X]) -> Self;
|
||||
fn change<T: Melon<X>>(self) -> T;
|
||||
}
|
||||
|
||||
struct Foo([i32; 5]);
|
||||
struct Bar<const A: usize, const B: usize>([i32; A + B])
|
||||
where
|
||||
[(); A + B]: ;
|
||||
|
||||
impl Melon<5> for Foo {
|
||||
fn new(arr: [i32; 5]) -> Self {
|
||||
Foo(arr)
|
||||
}
|
||||
fn change<T: Melon<5>>(self) -> T {
|
||||
T::new(self.0)
|
||||
}
|
||||
}
|
||||
|
||||
impl<const A: usize, const B: usize> Melon<{ A + B }> for Bar<A, B>
|
||||
where
|
||||
[(); A + B]: ,
|
||||
{
|
||||
fn new(arr: [i32; A + B]) -> Self {
|
||||
Bar(arr)
|
||||
}
|
||||
fn change<T: Melon<{ A + B }>>(self) -> T {
|
||||
T::new(self.0)
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
Loading…
x
Reference in New Issue
Block a user