summaryrefslogtreecommitdiffstats
path: root/src/test/ui/underscore-lifetimes.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/underscore-lifetimes.rs')
-rw-r--r--src/test/ui/underscore-lifetimes.rs38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/test/ui/underscore-lifetimes.rs b/src/test/ui/underscore-lifetimes.rs
new file mode 100644
index 000000000..a1593880d
--- /dev/null
+++ b/src/test/ui/underscore-lifetimes.rs
@@ -0,0 +1,38 @@
+// run-pass
+
+#![allow(dead_code)]
+struct Foo<'a>(&'a u8);
+
+fn foo(x: &u8) -> Foo<'_> {
+ Foo(x)
+}
+
+fn foo2(x: &'_ u8) -> Foo<'_> {
+ Foo(x)
+}
+
+fn foo3(x: &'_ u8) -> Foo {
+ Foo(x)
+}
+
+fn foo4(_: Foo<'_>) {}
+
+struct Foo2<'a, 'b> {
+ a: &'a u8,
+ b: &'b u8,
+}
+fn foo5<'b>(foo: Foo2<'_, 'b>) -> &'b u8 {
+ foo.b
+}
+
+fn main() {
+ let x = &5;
+ let _ = foo(x);
+ let _ = foo2(x);
+ let _ = foo3(x);
+ foo4(Foo(x));
+ let _ = foo5(Foo2 {
+ a: x,
+ b: &6,
+ });
+}