diff options
Diffstat (limited to 'tests/ui/traits/next-solver/normalize-rcvr-for-inherent.rs')
-rw-r--r-- | tests/ui/traits/next-solver/normalize-rcvr-for-inherent.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/ui/traits/next-solver/normalize-rcvr-for-inherent.rs b/tests/ui/traits/next-solver/normalize-rcvr-for-inherent.rs new file mode 100644 index 000000000..d308b1695 --- /dev/null +++ b/tests/ui/traits/next-solver/normalize-rcvr-for-inherent.rs @@ -0,0 +1,25 @@ +// compile-flags: -Znext-solver +// check-pass + +// Verify that we can assemble inherent impl candidates on a possibly +// unnormalized self type. + +trait Foo { + type Assoc; +} +impl Foo for i32 { + type Assoc = Bar; +} + +struct Bar; +impl Bar { + fn method(&self) {} +} + +fn build<T: Foo>(_: T) -> T::Assoc { + todo!() +} + +fn main() { + build(1i32).method(); +} |