diff options
Diffstat (limited to 'src/test/ui/traits/normalize-supertrait.rs')
-rw-r--r-- | src/test/ui/traits/normalize-supertrait.rs | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/src/test/ui/traits/normalize-supertrait.rs b/src/test/ui/traits/normalize-supertrait.rs deleted file mode 100644 index 021a93eac..000000000 --- a/src/test/ui/traits/normalize-supertrait.rs +++ /dev/null @@ -1,37 +0,0 @@ -// Regression test for #77653 -// When monomorphizing `f` we need to prove `dyn Derived<()>: Base<()>`. This -// requires us to normalize the `Base<<() as Proj>::S>` to `Base<()>` when -// comparing the supertrait `Derived<()>` to the expected trait. - -// build-pass - -trait Proj { - type S; -} - -impl Proj for () { - type S = (); -} - -impl Proj for i32 { - type S = i32; -} - -trait Base<T> { - fn is_base(&self); -} - -trait Derived<B: Proj>: Base<B::S> + Base<()> { - fn is_derived(&self); -} - -fn f<P: Proj>(obj: &dyn Derived<P>) { - obj.is_derived(); - Base::<P::S>::is_base(obj); - Base::<()>::is_base(obj); -} - -fn main() { - let x: fn(_) = f::<()>; - let x: fn(_) = f::<i32>; -} |