add lazy normalization regression tests
This commit is contained in:
parent
567ad7455d
commit
526945915b
@ -0,0 +1,18 @@
|
||||
// check-pass
|
||||
|
||||
trait Trait<T> {
|
||||
const ASSOC_CONST: usize = 0;
|
||||
}
|
||||
|
||||
impl Trait<()> for u8 {}
|
||||
|
||||
// `u8::ASSOC_CONST` is resolved today, but will be ambiguous
|
||||
// under lazy normalization.
|
||||
fn foo<T, U>() -> [(T, U); u8::ASSOC_CONST]
|
||||
where
|
||||
u8: Trait<T> + Trait<U>,
|
||||
{
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn main() {}
|
18
src/test/ui/lazy_normalization_consts/unevaluated-consts.rs
Normal file
18
src/test/ui/lazy_normalization_consts/unevaluated-consts.rs
Normal file
@ -0,0 +1,18 @@
|
||||
// check-pass
|
||||
|
||||
// If we allow the parent generics here without using lazy normalization
|
||||
// this results in a cycle error.
|
||||
struct Foo<T, U>(T, U);
|
||||
|
||||
impl<T> From<[u8; 1 + 1]> for Foo<T, [u8; 1 + 1]> {
|
||||
fn from(value: [u8; 1 + 1]) -> Foo<T, [u8; 1 + 1]> {
|
||||
todo!();
|
||||
}
|
||||
}
|
||||
|
||||
fn break_me<T>()
|
||||
where
|
||||
[u8; 1 + 1]: From<[u8; 1 + 1]>
|
||||
{}
|
||||
|
||||
fn main() {}
|
Loading…
Reference in New Issue
Block a user