about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2021-12-14 13:14:25 +0100
committerMatthias Krüger <matthias.krueger@famsik.de>2022-02-11 22:07:33 +0100
commit9b17e2d14d35f1c4eaf76ab6ad89c8ffe17889e5 (patch)
tree3d61582ef6f31077494774fc1cc9d09e58d3dac8
parent78450d2d602b06d9b94349aaf8cece1a4acaf3a8 (diff)
downloadrust-9b17e2d14d35f1c4eaf76ab6ad89c8ffe17889e5.tar.gz
rust-9b17e2d14d35f1c4eaf76ab6ad89c8ffe17889e5.zip
Add 2 tests
fixes #91139
fixes #91069
-rw-r--r--src/test/ui/associated-types/issue-91069.rs24
-rw-r--r--src/test/ui/generic-associated-types/issue-91139.rs22
2 files changed, 46 insertions, 0 deletions
diff --git a/src/test/ui/associated-types/issue-91069.rs b/src/test/ui/associated-types/issue-91069.rs
new file mode 100644
index 00000000000..109c2eed27a
--- /dev/null
+++ b/src/test/ui/associated-types/issue-91069.rs
@@ -0,0 +1,24 @@
+// check-pass
+
+pub trait Associate {
+    type Associated;
+}
+
+pub struct Wrap<'a> {
+    pub field: &'a i32,
+}
+
+pub trait Create<T> {
+    fn create() -> Self;
+}
+
+pub fn oh_no<'a, T>()
+where
+    Wrap<'a>: Associate,
+    <Wrap<'a> as Associate>::Associated: Create<T>,
+{
+    <Wrap<'a> as Associate>::Associated::create();
+}
+
+
+pub fn main() {}
diff --git a/src/test/ui/generic-associated-types/issue-91139.rs b/src/test/ui/generic-associated-types/issue-91139.rs
new file mode 100644
index 00000000000..2b82d2946b3
--- /dev/null
+++ b/src/test/ui/generic-associated-types/issue-91139.rs
@@ -0,0 +1,22 @@
+// check-pass
+
+#![feature(generic_associated_types)]
+
+trait Foo<T> {
+    type Type<'a>
+    where
+        T: 'a;
+}
+
+impl<T> Foo<T> for () {
+    type Type<'a>
+    where
+        T: 'a,
+    = ();
+}
+
+fn foo<T>() {
+    let _: for<'a> fn(<() as Foo<T>>::Type<'a>, &'a T) = |_, _| ();
+}
+
+pub fn main() {}