about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/tools/tidy/src/issues.txt1
-rw-r--r--tests/ui/type-alias-impl-trait/issue-53398-cyclic-types.rs10
-rw-r--r--tests/ui/type-alias-impl-trait/issue-53398-cyclic-types.stderr9
-rw-r--r--tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-1.rs (renamed from tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.rs)2
-rw-r--r--tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-1.stderr (renamed from tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.stderr)2
-rw-r--r--tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-2.rs (renamed from tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.rs)2
-rw-r--r--tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-2.stderr (renamed from tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.stderr)2
-rw-r--r--tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-3.rs10
-rw-r--r--tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-3.stderr9
-rw-r--r--tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-4.rs16
-rw-r--r--tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-4.stderr39
11 files changed, 78 insertions, 24 deletions
diff --git a/src/tools/tidy/src/issues.txt b/src/tools/tidy/src/issues.txt
index 060a6fa903f..e14932ad99d 100644
--- a/src/tools/tidy/src/issues.txt
+++ b/src/tools/tidy/src/issues.txt
@@ -4132,7 +4132,6 @@ ui/type-alias-impl-trait/issue-52843.rs
 ui/type-alias-impl-trait/issue-53092-2.rs
 ui/type-alias-impl-trait/issue-53092.rs
 ui/type-alias-impl-trait/issue-53096.rs
-ui/type-alias-impl-trait/issue-53398-cyclic-types.rs
 ui/type-alias-impl-trait/issue-53598.rs
 ui/type-alias-impl-trait/issue-53678-coroutine-and-const-fn.rs
 ui/type-alias-impl-trait/issue-55099-lifetime-inference.rs
diff --git a/tests/ui/type-alias-impl-trait/issue-53398-cyclic-types.rs b/tests/ui/type-alias-impl-trait/issue-53398-cyclic-types.rs
deleted file mode 100644
index 9cc8546afbc..00000000000
--- a/tests/ui/type-alias-impl-trait/issue-53398-cyclic-types.rs
+++ /dev/null
@@ -1,10 +0,0 @@
-#![feature(type_alias_impl_trait)]
-
-type Foo = impl Fn() -> Foo;
-
-fn foo() -> Foo {
-    //~^ ERROR: overflow
-    foo
-}
-
-fn main() {}
diff --git a/tests/ui/type-alias-impl-trait/issue-53398-cyclic-types.stderr b/tests/ui/type-alias-impl-trait/issue-53398-cyclic-types.stderr
deleted file mode 100644
index 1358c3e2a98..00000000000
--- a/tests/ui/type-alias-impl-trait/issue-53398-cyclic-types.stderr
+++ /dev/null
@@ -1,9 +0,0 @@
-error[E0275]: overflow evaluating the requirement `<fn() -> Foo {foo} as FnOnce<()>>::Output == Foo`
-  --> $DIR/issue-53398-cyclic-types.rs:5:13
-   |
-LL | fn foo() -> Foo {
-   |             ^^^
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0275`.
diff --git a/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.rs b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-1.rs
index 80ab53881a3..19986247d40 100644
--- a/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.rs
+++ b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-1.rs
@@ -1,9 +1,9 @@
 #![feature(type_alias_impl_trait)]
+//@ known-bug: #109268
 
 type Foo = impl Fn() -> Foo;
 
 fn crash(x: Foo) -> Foo {
-    //~^ ERROR: overflow
     x
 }
 
diff --git a/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.stderr b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-1.stderr
index 21779c7d128..ee8922b673e 100644
--- a/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.stderr
+++ b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-1.stderr
@@ -1,5 +1,5 @@
 error[E0275]: overflow evaluating the requirement `<Foo as FnOnce<()>>::Output == Foo`
-  --> $DIR/type-alias-impl-trait-with-cycle-error.rs:5:21
+  --> $DIR/type-alias-impl-trait-with-cycle-error-1.rs:6:21
    |
 LL | fn crash(x: Foo) -> Foo {
    |                     ^^^
diff --git a/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.rs b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-2.rs
index 87b2d6765f4..761cc83af51 100644
--- a/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.rs
+++ b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-2.rs
@@ -1,4 +1,5 @@
 #![feature(type_alias_impl_trait)]
+//@ known-bug: #109268
 
 pub trait Bar<T> {
     type Item;
@@ -7,7 +8,6 @@ pub trait Bar<T> {
 type Foo = impl Bar<Foo, Item = Foo>;
 
 fn crash(x: Foo) -> Foo {
-    //~^ ERROR: overflow
     x
 }
 
diff --git a/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.stderr b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-2.stderr
index d1c620968ba..3d0f1d30ca2 100644
--- a/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.stderr
+++ b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-2.stderr
@@ -1,5 +1,5 @@
 error[E0275]: overflow evaluating the requirement `<Foo as Bar<Foo>>::Item == Foo`
-  --> $DIR/type-alias-impl-trait-with-cycle-error2.rs:9:21
+  --> $DIR/type-alias-impl-trait-with-cycle-error-2.rs:10:21
    |
 LL | fn crash(x: Foo) -> Foo {
    |                     ^^^
diff --git a/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-3.rs b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-3.rs
new file mode 100644
index 00000000000..52942afd639
--- /dev/null
+++ b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-3.rs
@@ -0,0 +1,10 @@
+#![feature(type_alias_impl_trait)]
+//@ known-bug: #109268
+
+type Foo<'a> = impl Fn() -> Foo<'a>;
+
+fn crash<'a>(_: &'a (), x: Foo<'a>) -> Foo<'a> {
+    x
+}
+
+fn main() {}
diff --git a/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-3.stderr b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-3.stderr
new file mode 100644
index 00000000000..675689bac42
--- /dev/null
+++ b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-3.stderr
@@ -0,0 +1,9 @@
+error[E0275]: overflow evaluating the requirement `<Foo<'_> as FnOnce<()>>::Output == Foo<'a>`
+  --> $DIR/type-alias-impl-trait-with-cycle-error-3.rs:6:40
+   |
+LL | fn crash<'a>(_: &'a (), x: Foo<'a>) -> Foo<'a> {
+   |                                        ^^^^^^^
+
+error: aborting due to 1 previous error
+
+For more information about this error, try `rustc --explain E0275`.
diff --git a/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-4.rs b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-4.rs
new file mode 100644
index 00000000000..e866b45a8e6
--- /dev/null
+++ b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-4.rs
@@ -0,0 +1,16 @@
+#![feature(type_alias_impl_trait)]
+//@ known-bug: trait-system-refactor-initiative#43
+
+trait Id {
+    type Assoc;
+}
+impl<T> Id for T {
+    type Assoc = T;
+}
+
+type Ty
+where
+    Ty: Id<Assoc = Ty>,
+= impl Sized;
+fn define() -> Ty {}
+fn main() {}
diff --git a/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-4.stderr b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-4.stderr
new file mode 100644
index 00000000000..aedb78bf5e7
--- /dev/null
+++ b/tests/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error-4.stderr
@@ -0,0 +1,39 @@
+error[E0275]: overflow evaluating the requirement `Ty: Id`
+  --> $DIR/type-alias-impl-trait-with-cycle-error-4.rs:11:1
+   |
+LL | type Ty
+   | ^^^^^^^
+   |
+note: required by a bound on the type alias `Ty`
+  --> $DIR/type-alias-impl-trait-with-cycle-error-4.rs:13:9
+   |
+LL |     Ty: Id<Assoc = Ty>,
+   |         ^^^^^^^^^^^^^^ required by this bound
+
+error[E0275]: overflow evaluating the requirement `Ty: Id`
+  --> $DIR/type-alias-impl-trait-with-cycle-error-4.rs:15:19
+   |
+LL | fn define() -> Ty {}
+   |                   ^^
+   |
+note: required by a bound on the type alias `Ty`
+  --> $DIR/type-alias-impl-trait-with-cycle-error-4.rs:13:9
+   |
+LL |     Ty: Id<Assoc = Ty>,
+   |         ^^^^^^^^^^^^^^ required by this bound
+
+error[E0275]: overflow evaluating the requirement `Ty: Id`
+  --> $DIR/type-alias-impl-trait-with-cycle-error-4.rs:15:16
+   |
+LL | fn define() -> Ty {}
+   |                ^^
+   |
+note: required by a bound on the type alias `Ty`
+  --> $DIR/type-alias-impl-trait-with-cycle-error-4.rs:13:9
+   |
+LL |     Ty: Id<Assoc = Ty>,
+   |         ^^^^^^^^^^^^^^ required by this bound
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0275`.