diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/ui/traits/negative-impls/negative-impl-normalizes-to.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/ui/traits/negative-impls/negative-impl-normalizes-to.rs b/tests/ui/traits/negative-impls/negative-impl-normalizes-to.rs new file mode 100644 index 00000000000..998b0d0c458 --- /dev/null +++ b/tests/ui/traits/negative-impls/negative-impl-normalizes-to.rs @@ -0,0 +1,22 @@ +//@ revisions: current next +//@[next] compile-flags: -Znext-solver +//@ check-pass + +// Check that negative impls for traits with associated types +// do not result in an ICE when trying to normalize. +#![feature(negative_impls)] +trait Trait { + type Assoc; +} + +struct Local<T>(T); +impl !Trait for Local<u32> {} +impl Trait for Local<i32> { + type Assoc = i32; +} + +trait NoOverlap {} +impl<T: Trait<Assoc = u32>> NoOverlap for T {} +impl<T> NoOverlap for Local<T> {} + +fn main() {} |
