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