From e2ea0ba07a12bc328880a4ecc0a6c2153a46b332 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 6 May 2026 16:29:19 +0200 Subject: [PATCH] add new solver revisions to already fixed normalization tests There were fixed by https://github.com/rust-lang/rust/pull/140672 --- ... => normalization-overflow.current.stderr} | 2 +- .../normalization-overflow.next.stderr | 9 ++++++ .../normalization-overflow.rs | 11 +++++-- ...-alias-mutual-recursion.feature_new.stderr | 21 +++++++++++++ ...-alias-mutual-recursion.feature_old.stderr | 27 +++++++++++++++++ ...pe-alias-mutual-recursion.gated_new.stderr | 30 +++++++++++++++++++ ...pe-alias-mutual-recursion.gated_old.stderr | 30 +++++++++++++++++++ .../infinite-type-alias-mutual-recursion.rs | 21 +++++++++---- 8 files changed, 142 insertions(+), 9 deletions(-) rename tests/ui/associated-inherent-types/{normalization-overflow.stderr => normalization-overflow.current.stderr} (78%) create mode 100644 tests/ui/associated-inherent-types/normalization-overflow.next.stderr create mode 100644 tests/ui/infinite/infinite-type-alias-mutual-recursion.feature_new.stderr create mode 100644 tests/ui/infinite/infinite-type-alias-mutual-recursion.feature_old.stderr create mode 100644 tests/ui/infinite/infinite-type-alias-mutual-recursion.gated_new.stderr create mode 100644 tests/ui/infinite/infinite-type-alias-mutual-recursion.gated_old.stderr diff --git a/tests/ui/associated-inherent-types/normalization-overflow.stderr b/tests/ui/associated-inherent-types/normalization-overflow.current.stderr similarity index 78% rename from tests/ui/associated-inherent-types/normalization-overflow.stderr rename to tests/ui/associated-inherent-types/normalization-overflow.current.stderr index 05aad31c5f41..e3e662788cf0 100644 --- a/tests/ui/associated-inherent-types/normalization-overflow.stderr +++ b/tests/ui/associated-inherent-types/normalization-overflow.current.stderr @@ -1,5 +1,5 @@ error: overflow evaluating associated type `T::This` - --> $DIR/normalization-overflow.rs:9:5 + --> $DIR/normalization-overflow.rs:14:5 | LL | type This = Self::This; | ^^^^^^^^^ diff --git a/tests/ui/associated-inherent-types/normalization-overflow.next.stderr b/tests/ui/associated-inherent-types/normalization-overflow.next.stderr new file mode 100644 index 000000000000..5f0939b9f776 --- /dev/null +++ b/tests/ui/associated-inherent-types/normalization-overflow.next.stderr @@ -0,0 +1,9 @@ +error[E0271]: type mismatch resolving `T::This normalizes-to _` + --> $DIR/normalization-overflow.rs:14:5 + | +LL | type This = Self::This; + | ^^^^^^^^^ types differ + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0271`. diff --git a/tests/ui/associated-inherent-types/normalization-overflow.rs b/tests/ui/associated-inherent-types/normalization-overflow.rs index 4228238aa7b7..c5505578f4f0 100644 --- a/tests/ui/associated-inherent-types/normalization-overflow.rs +++ b/tests/ui/associated-inherent-types/normalization-overflow.rs @@ -1,12 +1,19 @@ -#![feature(inherent_associated_types)] +//@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) +//@ [next] compile-flags: -Znext-solver + +#![feature(inherent_associated_types, rustc_attrs)] #![allow(incomplete_features)] +#![rustc_no_implicit_bounds] // FIXME(fmease): I'd prefer to report a cycle error here instead of an overflow one. struct T; impl T { - type This = Self::This; //~ ERROR overflow evaluating associated type `T::This` + type This = Self::This; + //[current]~^ ERROR: overflow evaluating associated type `T::This` + //[next]~^^ ERROR: type mismatch resolving `T::This normalizes-to _` } fn main() {} diff --git a/tests/ui/infinite/infinite-type-alias-mutual-recursion.feature_new.stderr b/tests/ui/infinite/infinite-type-alias-mutual-recursion.feature_new.stderr new file mode 100644 index 000000000000..1d6ace580951 --- /dev/null +++ b/tests/ui/infinite/infinite-type-alias-mutual-recursion.feature_new.stderr @@ -0,0 +1,21 @@ +error[E0271]: type mismatch resolving `X3 normalizes-to _` + --> $DIR/infinite-type-alias-mutual-recursion.rs:12:1 + | +LL | type X1 = X2; + | ^^^^^^^ types differ + +error[E0271]: type mismatch resolving `X1 normalizes-to _` + --> $DIR/infinite-type-alias-mutual-recursion.rs:16:1 + | +LL | type X2 = X3; + | ^^^^^^^ types differ + +error[E0271]: type mismatch resolving `X2 normalizes-to _` + --> $DIR/infinite-type-alias-mutual-recursion.rs:19:1 + | +LL | type X3 = X1; + | ^^^^^^^ types differ + +error: aborting due to 3 previous errors + +For more information about this error, try `rustc --explain E0271`. diff --git a/tests/ui/infinite/infinite-type-alias-mutual-recursion.feature_old.stderr b/tests/ui/infinite/infinite-type-alias-mutual-recursion.feature_old.stderr new file mode 100644 index 000000000000..c7adc3af02fa --- /dev/null +++ b/tests/ui/infinite/infinite-type-alias-mutual-recursion.feature_old.stderr @@ -0,0 +1,27 @@ +error[E0275]: overflow normalizing the type alias `X2` + --> $DIR/infinite-type-alias-mutual-recursion.rs:12:1 + | +LL | type X1 = X2; + | ^^^^^^^ + | + = note: in case this is a recursive type alias, consider using a struct, enum, or union instead + +error[E0275]: overflow normalizing the type alias `X3` + --> $DIR/infinite-type-alias-mutual-recursion.rs:16:1 + | +LL | type X2 = X3; + | ^^^^^^^ + | + = note: in case this is a recursive type alias, consider using a struct, enum, or union instead + +error[E0275]: overflow normalizing the type alias `X1` + --> $DIR/infinite-type-alias-mutual-recursion.rs:19:1 + | +LL | type X3 = X1; + | ^^^^^^^ + | + = note: in case this is a recursive type alias, consider using a struct, enum, or union instead + +error: aborting due to 3 previous errors + +For more information about this error, try `rustc --explain E0275`. diff --git a/tests/ui/infinite/infinite-type-alias-mutual-recursion.gated_new.stderr b/tests/ui/infinite/infinite-type-alias-mutual-recursion.gated_new.stderr new file mode 100644 index 000000000000..888e1d18dea7 --- /dev/null +++ b/tests/ui/infinite/infinite-type-alias-mutual-recursion.gated_new.stderr @@ -0,0 +1,30 @@ +error[E0391]: cycle detected when expanding type alias `X1` + --> $DIR/infinite-type-alias-mutual-recursion.rs:12:11 + | +LL | type X1 = X2; + | ^^ + | +note: ...which requires expanding type alias `X2`... + --> $DIR/infinite-type-alias-mutual-recursion.rs:16:11 + | +LL | type X2 = X3; + | ^^ +note: ...which requires expanding type alias `X3`... + --> $DIR/infinite-type-alias-mutual-recursion.rs:19:11 + | +LL | type X3 = X1; + | ^^ + = note: ...which again requires expanding type alias `X1`, completing the cycle + = note: type aliases cannot be recursive + = help: consider using a struct, enum, or union instead to break the cycle + = help: see for more information +note: cycle used when checking that `X1` is well-formed + --> $DIR/infinite-type-alias-mutual-recursion.rs:12:1 + | +LL | type X1 = X2; + | ^^^^^^^ + = note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0391`. diff --git a/tests/ui/infinite/infinite-type-alias-mutual-recursion.gated_old.stderr b/tests/ui/infinite/infinite-type-alias-mutual-recursion.gated_old.stderr new file mode 100644 index 000000000000..888e1d18dea7 --- /dev/null +++ b/tests/ui/infinite/infinite-type-alias-mutual-recursion.gated_old.stderr @@ -0,0 +1,30 @@ +error[E0391]: cycle detected when expanding type alias `X1` + --> $DIR/infinite-type-alias-mutual-recursion.rs:12:11 + | +LL | type X1 = X2; + | ^^ + | +note: ...which requires expanding type alias `X2`... + --> $DIR/infinite-type-alias-mutual-recursion.rs:16:11 + | +LL | type X2 = X3; + | ^^ +note: ...which requires expanding type alias `X3`... + --> $DIR/infinite-type-alias-mutual-recursion.rs:19:11 + | +LL | type X3 = X1; + | ^^ + = note: ...which again requires expanding type alias `X1`, completing the cycle + = note: type aliases cannot be recursive + = help: consider using a struct, enum, or union instead to break the cycle + = help: see for more information +note: cycle used when checking that `X1` is well-formed + --> $DIR/infinite-type-alias-mutual-recursion.rs:12:1 + | +LL | type X1 = X2; + | ^^^^^^^ + = note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0391`. diff --git a/tests/ui/infinite/infinite-type-alias-mutual-recursion.rs b/tests/ui/infinite/infinite-type-alias-mutual-recursion.rs index 6a43c4ac7872..24e1318ca3d7 100644 --- a/tests/ui/infinite/infinite-type-alias-mutual-recursion.rs +++ b/tests/ui/infinite/infinite-type-alias-mutual-recursion.rs @@ -1,14 +1,23 @@ -//@ revisions: feature gated +//@ revisions: feature_old gated_old feature_new gated_new //@ ignore-parallel-frontend query cycle -#![cfg_attr(feature, feature(lazy_type_alias))] +//@ ignore-compare-mode-next-solver (explicit revisions) +//@ [feature_new] compile-flags: -Znext-solver +//@ [gated_new] compile-flags: -Znext-solver + +#![feature(rustc_attrs)] +#![rustc_no_implicit_bounds] +#![cfg_attr(any(feature_old, feature_new), feature(lazy_type_alias))] #![allow(incomplete_features)] type X1 = X2; -//[gated]~^ ERROR cycle detected when expanding type alias `X1` -//[feature]~^^ ERROR: overflow normalizing the type alias `X2` +//[gated_old,gated_new]~^ ERROR cycle detected when expanding type alias `X1` +//[feature_old]~^^ ERROR: overflow normalizing the type alias `X2` +//[feature_new]~^^^ ERROR: type mismatch resolving `X3 normalizes-to _` type X2 = X3; -//[feature]~^ ERROR: overflow normalizing the type alias `X3` +//[feature_old]~^ ERROR: overflow normalizing the type alias `X3` +//[feature_new]~^^ ERROR: type mismatch resolving `X1 normalizes-to _` type X3 = X1; -//[feature]~^ ERROR: overflow normalizing the type alias `X1` +//[feature_old]~^ ERROR: overflow normalizing the type alias `X1` +//[feature_new]~^^ ERROR: type mismatch resolving `X2 normalizes-to _` fn main() {}