summaryrefslogtreecommitdiffstats
path: root/tests/ui/traits/object/issue-44454-1.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/traits/object/issue-44454-1.rs')
-rw-r--r--tests/ui/traits/object/issue-44454-1.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/ui/traits/object/issue-44454-1.rs b/tests/ui/traits/object/issue-44454-1.rs
new file mode 100644
index 000000000..bbaf3188a
--- /dev/null
+++ b/tests/ui/traits/object/issue-44454-1.rs
@@ -0,0 +1,22 @@
+// Taken from https://github.com/rust-lang/rust/issues/44454#issue-256435333
+
+trait Animal<X>: 'static {}
+
+fn foo<Y, X>()
+where
+ Y: Animal<X> + ?Sized,
+{
+ // `Y` implements `Animal<X>` so `Y` is 'static.
+ baz::<Y>()
+}
+
+fn bar<'a>(_arg: &'a i32) {
+ foo::<dyn Animal<&'a i32>, &'a i32>() //~ ERROR: lifetime may not live long enough
+}
+
+fn baz<T: 'static + ?Sized>() {}
+
+fn main() {
+ let a = 5;
+ bar(&a);
+}