about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-05-10 14:50:31 +0000
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-05-10 14:50:31 +0000
commitd63f82e1efbfbe2344ffa3a47602faaee6429d04 (patch)
tree8a128f30dfb42800561666fe5bdb9c9f364f72f3 /src
parentc51871c469f7ed3b35ae25d7e6e77bc73fbdd0e3 (diff)
downloadrust-d63f82e1efbfbe2344ffa3a47602faaee6429d04.tar.gz
rust-d63f82e1efbfbe2344ffa3a47602faaee6429d04.zip
Use lifetimes on type-alias-impl-trait used in function signatures to infer output type lifetimes
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/type-alias-impl-trait/constrain_inputs.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/test/ui/type-alias-impl-trait/constrain_inputs.rs b/src/test/ui/type-alias-impl-trait/constrain_inputs.rs
new file mode 100644
index 00000000000..c32174288ee
--- /dev/null
+++ b/src/test/ui/type-alias-impl-trait/constrain_inputs.rs
@@ -0,0 +1,17 @@
+// check-pass
+
+#![feature(type_alias_impl_trait)]
+
+mod foo {
+    type Ty<'a> = impl Sized;
+    fn defining(s: &str) -> Ty<'_> { s }
+    fn execute(ty: Ty<'_>) -> &str { todo!() }
+}
+
+mod bar {
+    type Ty<'a> = impl FnOnce() -> &'a str;
+    fn defining(s: &str) -> Ty<'_> { move || s }
+    fn execute(ty: Ty<'_>) -> &str { ty() }
+}
+
+fn main() {}