summaryrefslogtreecommitdiffstats
path: root/tests/ui/impl-trait/issue-108591.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/impl-trait/issue-108591.rs')
-rw-r--r--tests/ui/impl-trait/issue-108591.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/ui/impl-trait/issue-108591.rs b/tests/ui/impl-trait/issue-108591.rs
new file mode 100644
index 000000000..6b9d14941
--- /dev/null
+++ b/tests/ui/impl-trait/issue-108591.rs
@@ -0,0 +1,30 @@
+// check-pass
+
+#![feature(type_alias_impl_trait)]
+
+struct MyTy<'a>(Vec<u8>, &'a ());
+
+impl MyTy<'_> {
+ fn one(&mut self) -> &mut impl Sized {
+ &mut self.0
+ }
+ fn two(&mut self) -> &mut (impl Sized + 'static) {
+ self.one()
+ }
+}
+
+type Opaque<'a> = impl Sized;
+fn define<'a>() -> Opaque<'a> {}
+
+fn test<'a>() {
+ None::<&'static Opaque<'a>>;
+}
+
+fn one<'a, 'b: 'b>() -> &'a impl Sized {
+ &()
+}
+fn two<'a, 'b>() {
+ one::<'a, 'b>();
+}
+
+fn main() {}