diff options
Diffstat (limited to 'src/test/ui/associated-types/defaults-cyclic-fail-1.rs')
-rw-r--r-- | src/test/ui/associated-types/defaults-cyclic-fail-1.rs | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/src/test/ui/associated-types/defaults-cyclic-fail-1.rs b/src/test/ui/associated-types/defaults-cyclic-fail-1.rs deleted file mode 100644 index 61ef01323..000000000 --- a/src/test/ui/associated-types/defaults-cyclic-fail-1.rs +++ /dev/null @@ -1,40 +0,0 @@ -#![feature(associated_type_defaults)] - -// Having a cycle in assoc. type defaults is okay... -trait Tr { - type A = Self::B; - type B = Self::A; -} - -impl Tr for () {} - -impl Tr for u8 { - type A = u8; -} - -impl Tr for u16 { - type B = (); -} - -impl Tr for u32 { - type A = (); - type B = u8; -} - -// ...but not in an impl that redefines one of the types. -impl Tr for bool { - type A = Box<Self::B>; - //~^ ERROR overflow evaluating the requirement `<bool as Tr>::B == _` -} -// (the error is shown twice for some reason) - -impl Tr for usize { - type B = &'static Self::A; - //~^ ERROR overflow evaluating the requirement `<usize as Tr>::A == _` -} - -fn main() { - // We don't check that the types project correctly because the cycle errors stop compilation - // before `main` is type-checked. - // `defaults-cyclic-pass-1.rs` does this. -} |