diff options
Diffstat (limited to 'src/test/ui/fn/implied-bounds-unnorm-associated-type.rs')
-rw-r--r-- | src/test/ui/fn/implied-bounds-unnorm-associated-type.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/test/ui/fn/implied-bounds-unnorm-associated-type.rs b/src/test/ui/fn/implied-bounds-unnorm-associated-type.rs new file mode 100644 index 000000000..04b6f4dd8 --- /dev/null +++ b/src/test/ui/fn/implied-bounds-unnorm-associated-type.rs @@ -0,0 +1,23 @@ +// check-fail +// See issue #91068. Types in the substs of an associated type can't be implied +// to be WF, since they don't actually have to be constructed. + +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 + //~^ ERROR lifetime may not live long enough +} + +fn main() { + let x = String::from("Hello World!"); + let y = f(&x, ()); + drop(x); + println!("{}", y); +} |