diff options
Diffstat (limited to 'tests/ui/fn/implied-bounds-unnorm-associated-type.rs')
-rw-r--r-- | tests/ui/fn/implied-bounds-unnorm-associated-type.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/ui/fn/implied-bounds-unnorm-associated-type.rs b/tests/ui/fn/implied-bounds-unnorm-associated-type.rs new file mode 100644 index 000000000..d58d25036 --- /dev/null +++ b/tests/ui/fn/implied-bounds-unnorm-associated-type.rs @@ -0,0 +1,23 @@ +// check-fail +// See issue #91068. We check that the unnormalized associated types in +// function signatures are implied + +trait Trait { + type Type; +} + +impl<T> Trait for T { + type Type = (); +} + +fn f<'a, 'b>(s: &'b str, _: <&'a &'b () as Trait>::Type) -> &'a str { + s +} + +fn main() { + let x = String::from("Hello World!"); + let y = f(&x, ()); + drop(x); + //~^ ERROR cannot move out of `x` because it is borrowed + println!("{}", y); +} |