add lazy normalization regression tests

This commit is contained in:
Bastian Kauschke 2020-07-15 15:14:33 +02:00
parent 567ad7455d
commit 526945915b
2 changed files with 36 additions and 0 deletions

View File

@ -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() {}

View 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() {}