From f06caa3a0d7b9f1b4fad0b12fc4834f284567f69 Mon Sep 17 00:00:00 2001 From: Toni Peter Date: Mon, 21 Sep 2026 17:17:40 +0200 Subject: [PATCH 01/10] Add regression test for lifetimes preceding types in generics --- ...lifetime-preceding-type-in-generic-args.rs | 29 ++++++++++ ...time-preceding-type-in-generic-args.stderr | 54 +++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 tests/ui/parser/lifetime-preceding-type-in-generic-args.rs create mode 100644 tests/ui/parser/lifetime-preceding-type-in-generic-args.stderr diff --git a/tests/ui/parser/lifetime-preceding-type-in-generic-args.rs b/tests/ui/parser/lifetime-preceding-type-in-generic-args.rs new file mode 100644 index 0000000000000..9c36f619546be --- /dev/null +++ b/tests/ui/parser/lifetime-preceding-type-in-generic-args.rs @@ -0,0 +1,29 @@ +// Regression test for #59325, specifically for ampersand-less lifetimes in generics. +// Similar tests outside of generics are in recover/recover-ampersand-less-ref-ty.rs. +struct T1; +struct T2; + +struct Foo(T); +struct Bar(T1, T2); + +struct A1 { + x: Foo<'static T1>, //~ERROR expected one of `,` or `>` + //~^ HELP you might have meant to end the type parameters here +} + +struct A2 { + x: Foo<'static mut T1>, //~ERROR expected one of `,` or `>` + //~^ HELP you might have meant to end the type parameters here +} + +struct A3 { + x: Bar<'static T1, T2>, //~ERROR expected one of `,` or `>` + //~^ HELP you might have meant to end the type parameters here +} + +struct A4 { + x: Bar, //~ERROR expected one of `,` or `>` + //~^ HELP you might have meant to end the type parameters here +} + +fn main() {} diff --git a/tests/ui/parser/lifetime-preceding-type-in-generic-args.stderr b/tests/ui/parser/lifetime-preceding-type-in-generic-args.stderr new file mode 100644 index 0000000000000..1d0d863847f9b --- /dev/null +++ b/tests/ui/parser/lifetime-preceding-type-in-generic-args.stderr @@ -0,0 +1,54 @@ +error: expected one of `,` or `>`, found `T1` + --> $DIR/lifetime-preceding-type-in-generic-args.rs:10:20 + | +LL | struct A1 { + | -- while parsing this struct +LL | x: Foo<'static T1>, + | ^^ expected one of `,` or `>` + | +help: you might have meant to end the type parameters here + | +LL | x: Foo<'static> T1>, + | + + +error: expected one of `,` or `>`, found keyword `mut` + --> $DIR/lifetime-preceding-type-in-generic-args.rs:15:20 + | +LL | struct A2 { + | -- while parsing this struct +LL | x: Foo<'static mut T1>, + | ^^^ expected one of `,` or `>` + | +help: you might have meant to end the type parameters here + | +LL | x: Foo<'static> mut T1>, + | + + +error: expected one of `,` or `>`, found `T1` + --> $DIR/lifetime-preceding-type-in-generic-args.rs:20:20 + | +LL | struct A3 { + | -- while parsing this struct +LL | x: Bar<'static T1, T2>, + | ^^ expected one of `,` or `>` + | +help: you might have meant to end the type parameters here + | +LL | x: Bar<'static> T1, T2>, + | + + +error: expected one of `,` or `>`, found `T2` + --> $DIR/lifetime-preceding-type-in-generic-args.rs:25:24 + | +LL | struct A4 { + | -- while parsing this struct +LL | x: Bar, + | ^^ expected one of `,` or `>` + | +help: you might have meant to end the type parameters here + | +LL | x: Bar T2>, + | + + +error: aborting due to 4 previous errors + From ca5f5405898e9caae1d2e516c89f2f74b7ccc065 Mon Sep 17 00:00:00 2001 From: Toni Peter Date: Mon, 28 Sep 2026 14:43:28 +0200 Subject: [PATCH 02/10] Improve suggestions for lifetimes preceding types in generics --- .../rustc_parse/src/parser/diagnostics.rs | 38 +++++++++++++++++++ compiler/rustc_parse/src/parser/path.rs | 16 +++++--- compiler/rustc_parse/src/parser/ty.rs | 25 ++++++++---- tests/ui/parser/issues/issue-20616-2.stderr | 8 +++- tests/ui/parser/issues/issue-93867.stderr | 8 +++- ...lifetime-preceding-type-in-generic-args.rs | 11 ++++-- ...time-preceding-type-in-generic-args.stderr | 36 ++++++++++++------ 7 files changed, 108 insertions(+), 34 deletions(-) diff --git a/compiler/rustc_parse/src/parser/diagnostics.rs b/compiler/rustc_parse/src/parser/diagnostics.rs index bb8be3c9c509f..36764a0477baa 100644 --- a/compiler/rustc_parse/src/parser/diagnostics.rs +++ b/compiler/rustc_parse/src/parser/diagnostics.rs @@ -2286,6 +2286,44 @@ impl<'a> Parser<'a> { } } + /// Handle encountering a lifetime in a generic argument list that is not + /// followed by a `,` or `>`. + /// We emit an error and check if the lifetime is followed by a type + /// in, e.g. `Foo<'a T>`. + /// In this case, it is likely the user meant either `Foo<&'a T>` or `Foo<'a, T>`. + /// We give both suggestions, then emit an error. Note that we do not try to recover, + /// since we cannot know which of the two suggestions is correct and emitting either + /// of the two types could cause confusing errors further on. + pub(super) fn handle_lifetime_arg_preceding_type(&mut self, span: Span) -> PResult<'a, ()> { + let snapshot = self.create_snapshot_for_diagnostic(); + let (mutbl, ty) = self.parse_ref_ty_no_leading_ampersand(); + self.restore_snapshot(snapshot); + if ty.is_none() { + // The lifetime is not followed by a type, do nothing. + return Ok(()); + } + // If we find `'a mut T`, suggesting to add a comma is wrong. + let suggest_comma = mutbl.is_not(); + // Add `>` to the list of expected tokens. + self.check(exp!(Gt)); + let mut err = self.unexpected().unwrap_err(); + err.span_suggestion_verbose( + span.shrink_to_lo(), + "you might have meant to write a reference type here", + "&", + Applicability::MaybeIncorrect, + ); + if suggest_comma { + err.span_suggestion_verbose( + span.shrink_to_hi(), + "use a comma to separate type parameters", + ",", + Applicability::MaybeIncorrect, + ); + } + Err(err.into()) + } + /// Handle encountering a symbol in a generic argument list that is not a `,` or `>`. In this /// case, we emit an error and try to suggest enclosing a const argument in braces if it looks /// like the user has forgotten them. diff --git a/compiler/rustc_parse/src/parser/path.rs b/compiler/rustc_parse/src/parser/path.rs index 0ac12d6f392b2..0816b543d27da 100644 --- a/compiler/rustc_parse/src/parser/path.rs +++ b/compiler/rustc_parse/src/parser/path.rs @@ -705,12 +705,16 @@ impl<'a> Parser<'a> { err.emit(); continue; } - if !self.token.kind.should_end_const_arg() - && self.handle_ambiguous_unbraced_const_arg(&mut args)? - { - // We've managed to (partially) recover, so continue trying to parse - // arguments. - continue; + if !self.token.kind.should_end_const_arg() { + if let Some(arg @ AngleBracketedArg::Arg(GenericArg::Lifetime(_))) = args.last() + { + self.handle_lifetime_arg_preceding_type(arg.span())?; + } + if self.handle_ambiguous_unbraced_const_arg(&mut args)? { + // We've managed to (partially) recover, so continue trying to parse + // arguments. + continue; + } } break; } diff --git a/compiler/rustc_parse/src/parser/ty.rs b/compiler/rustc_parse/src/parser/ty.rs index 5450d23fbbc2e..2d97d46beaaa8 100644 --- a/compiler/rustc_parse/src/parser/ty.rs +++ b/compiler/rustc_parse/src/parser/ty.rs @@ -545,6 +545,17 @@ impl<'a> Parser<'a> { )) } + pub(super) fn parse_ref_ty_no_leading_ampersand(&mut self) -> (Mutability, Option>) { + let mutbl = self.parse_mutability(); + match self.parse_ty_no_plus() { + Ok(ty) => (mutbl, Some(ty)), + Err(err) => { + err.cancel(); + (mutbl, None) + } + } + } + fn maybe_recover_ref_ty_no_leading_ampersand<'cx>( &mut self, lt: Lifetime, @@ -555,9 +566,12 @@ impl<'a> Parser<'a> { return Err(err); } let snapshot = self.create_snapshot_for_diagnostic(); - let mutbl = self.parse_mutability(); - match self.parse_ty_no_plus() { - Ok(ty) => { + match self.parse_ref_ty_no_leading_ampersand() { + (_, None) => { + self.restore_snapshot(snapshot); + Err(err) + } + (mutbl, Some(ty)) => { err.span_suggestion_verbose( lo.shrink_to_lo(), "you might have meant to write a reference type here", @@ -567,11 +581,6 @@ impl<'a> Parser<'a> { err.emit(); Ok(TyKind::Ref(Some(lt), MutTy { ty, mutbl })) } - Err(diag) => { - diag.cancel(); - self.restore_snapshot(snapshot); - Err(err) - } } } diff --git a/tests/ui/parser/issues/issue-20616-2.stderr b/tests/ui/parser/issues/issue-20616-2.stderr index 038b2ffc72b39..ae9dfa2344f32 100644 --- a/tests/ui/parser/issues/issue-20616-2.stderr +++ b/tests/ui/parser/issues/issue-20616-2.stderr @@ -4,9 +4,13 @@ error: expected one of `,` or `>`, found `(` LL | type Type_2 = Type_1_<'static ()>; | ^ expected one of `,` or `>` | -help: you might have meant to end the type parameters here +help: you might have meant to write a reference type here | -LL | type Type_2 = Type_1_<'static> ()>; +LL | type Type_2 = Type_1_<&'static ()>; + | + +help: use a comma to separate type parameters + | +LL | type Type_2 = Type_1_<'static, ()>; | + error: aborting due to 1 previous error diff --git a/tests/ui/parser/issues/issue-93867.stderr b/tests/ui/parser/issues/issue-93867.stderr index c653c8dd4a424..35204660d8a1c 100644 --- a/tests/ui/parser/issues/issue-93867.stderr +++ b/tests/ui/parser/issues/issue-93867.stderr @@ -4,9 +4,13 @@ error: expected one of `,` or `>`, found `K` LL | pub fn entry<'a, K, V>() -> Entry<'a K, V> { | ^ expected one of `,` or `>` | -help: you might have meant to end the type parameters here +help: you might have meant to write a reference type here | -LL | pub fn entry<'a, K, V>() -> Entry<'a> K, V> { +LL | pub fn entry<'a, K, V>() -> Entry<&'a K, V> { + | + +help: use a comma to separate type parameters + | +LL | pub fn entry<'a, K, V>() -> Entry<'a, K, V> { | + error: aborting due to 1 previous error diff --git a/tests/ui/parser/lifetime-preceding-type-in-generic-args.rs b/tests/ui/parser/lifetime-preceding-type-in-generic-args.rs index 9c36f619546be..3ec9fabb15ed9 100644 --- a/tests/ui/parser/lifetime-preceding-type-in-generic-args.rs +++ b/tests/ui/parser/lifetime-preceding-type-in-generic-args.rs @@ -8,22 +8,25 @@ struct Bar(T1, T2); struct A1 { x: Foo<'static T1>, //~ERROR expected one of `,` or `>` - //~^ HELP you might have meant to end the type parameters here + //~^ HELP you might have meant to write a reference type here + //~| HELP use a comma to separate type parameters } struct A2 { x: Foo<'static mut T1>, //~ERROR expected one of `,` or `>` - //~^ HELP you might have meant to end the type parameters here + //~^ HELP you might have meant to write a reference type here } struct A3 { x: Bar<'static T1, T2>, //~ERROR expected one of `,` or `>` - //~^ HELP you might have meant to end the type parameters here + //~^ HELP you might have meant to write a reference type here + //~| HELP use a comma to separate type parameters } struct A4 { x: Bar, //~ERROR expected one of `,` or `>` - //~^ HELP you might have meant to end the type parameters here + //~^ HELP you might have meant to write a reference type here + //~| HELP use a comma to separate type parameters } fn main() {} diff --git a/tests/ui/parser/lifetime-preceding-type-in-generic-args.stderr b/tests/ui/parser/lifetime-preceding-type-in-generic-args.stderr index 1d0d863847f9b..0c2db58b3ec77 100644 --- a/tests/ui/parser/lifetime-preceding-type-in-generic-args.stderr +++ b/tests/ui/parser/lifetime-preceding-type-in-generic-args.stderr @@ -6,48 +6,60 @@ LL | struct A1 { LL | x: Foo<'static T1>, | ^^ expected one of `,` or `>` | -help: you might have meant to end the type parameters here +help: you might have meant to write a reference type here | -LL | x: Foo<'static> T1>, +LL | x: Foo<&'static T1>, + | + +help: use a comma to separate type parameters + | +LL | x: Foo<'static, T1>, | + error: expected one of `,` or `>`, found keyword `mut` - --> $DIR/lifetime-preceding-type-in-generic-args.rs:15:20 + --> $DIR/lifetime-preceding-type-in-generic-args.rs:16:20 | LL | struct A2 { | -- while parsing this struct LL | x: Foo<'static mut T1>, | ^^^ expected one of `,` or `>` | -help: you might have meant to end the type parameters here +help: you might have meant to write a reference type here | -LL | x: Foo<'static> mut T1>, - | + +LL | x: Foo<&'static mut T1>, + | + error: expected one of `,` or `>`, found `T1` - --> $DIR/lifetime-preceding-type-in-generic-args.rs:20:20 + --> $DIR/lifetime-preceding-type-in-generic-args.rs:21:20 | LL | struct A3 { | -- while parsing this struct LL | x: Bar<'static T1, T2>, | ^^ expected one of `,` or `>` | -help: you might have meant to end the type parameters here +help: you might have meant to write a reference type here | -LL | x: Bar<'static> T1, T2>, +LL | x: Bar<&'static T1, T2>, + | + +help: use a comma to separate type parameters + | +LL | x: Bar<'static, T1, T2>, | + error: expected one of `,` or `>`, found `T2` - --> $DIR/lifetime-preceding-type-in-generic-args.rs:25:24 + --> $DIR/lifetime-preceding-type-in-generic-args.rs:27:24 | LL | struct A4 { | -- while parsing this struct LL | x: Bar, | ^^ expected one of `,` or `>` | -help: you might have meant to end the type parameters here +help: you might have meant to write a reference type here + | +LL | x: Bar, + | + +help: use a comma to separate type parameters | -LL | x: Bar T2>, +LL | x: Bar, | + error: aborting due to 4 previous errors From cfa655ad24dbe4cd823f699ef9b52b5e95a0db43 Mon Sep 17 00:00:00 2001 From: Augie Fackler Date: Wed, 30 Sep 2026 13:22:11 -0400 Subject: [PATCH 03/10] tests: accept noundef in a couple more places LLVM 24 got smarter and is able to mark some more things noundef, which showed up in some of our test checks. --- tests/codegen-llvm/sparc-struct-abi.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/codegen-llvm/sparc-struct-abi.rs b/tests/codegen-llvm/sparc-struct-abi.rs index 6a31fe0d37f15..f79814e4bb4f1 100644 --- a/tests/codegen-llvm/sparc-struct-abi.rs +++ b/tests/codegen-llvm/sparc-struct-abi.rs @@ -29,7 +29,7 @@ pub struct BoolFloat { f: f32, } -// CHECK: define inreg { i32, float } @structboolfloat() +// CHECK: define inreg{{( noundef)?}} { i32, float } @structboolfloat() // CHECK-NEXT: start: // CHECK-NEXT: ret { i32, float } { i32 16777216, float {{0x40091EB860000000|3.140000e\+00}} } #[no_mangle] @@ -48,7 +48,7 @@ pub struct ShortDouble { d: f64, } -// CHECK: define { i64, double } @structshortdouble() +// CHECK: define{{( noundef)?}} { i64, double } @structshortdouble() // CHECK-NEXT: start: // CHECK-NEXT: ret { i64, double } { i64 34621422135410688, double 3.140000e+00 } #[no_mangle] @@ -88,7 +88,7 @@ pub struct NestedStructs { b: FloatFloat, } -// CHECK: define inreg { float, float, float, float } @structnestestructs() +// CHECK: define inreg{{( noundef)?}} { float, float, float, float } @structnestestructs() // CHECK-NEXT: start: // CHECK-NEXT: ret { float, float, float, float } { float {{0x3FB99999A0000000|1.000000e-01}}, float {{0x3FF19999A0000000|1.100000e\+00}}, float {{0x40019999A0000000|2.200000e\+00}}, float {{0x400A666660000000|3.300000e\+00}} } #[no_mangle] From e75273b0247664eded2f7bd482c76dc0adaaf149 Mon Sep 17 00:00:00 2001 From: Miguel Ojeda Date: Fri, 2 Oct 2026 08:44:29 +0200 Subject: [PATCH 04/10] core: io: clean `unused_variables` lint under `no_io_statics` When building `core` with `--cfg no_io_statics`, the compiler warns: error: unused variable: `f` --> .../library/core/src/io/error/os_functions.rs:9:36 | 9 | pub(super) unsafe fn set_functions(f: &'static OsFunctions) { | ^ help: if this is intentional, prefix it with an underscore: `_f` | = note: `-D unused-variables` implied by `-D warnings` = help: to override `-D warnings` add `#[allow(unused_variables)]` Thus clean it up. Signed-off-by: Miguel Ojeda --- library/core/src/io/error/os_functions.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/core/src/io/error/os_functions.rs b/library/core/src/io/error/os_functions.rs index b34b7c7dc7926..fcc549f0fb643 100644 --- a/library/core/src/io/error/os_functions.rs +++ b/library/core/src/io/error/os_functions.rs @@ -6,7 +6,7 @@ use crate::fmt; /// The provided reference must point to data that is entirely constant; it must /// not be created during runtime. #[inline] -pub(super) unsafe fn set_functions(f: &'static OsFunctions) { +pub(super) unsafe fn set_functions(_f: &'static OsFunctions) { // FIXME: externally implementable items may allow for weak linkage, allowing // these methods to be overridden even when atomic pointers are not supported. } From f3f9adf7082e27e0b77b05ec3e2fdaee1badd056 Mon Sep 17 00:00:00 2001 From: Miguel Ojeda Date: Fri, 2 Oct 2026 14:48:46 +0200 Subject: [PATCH 05/10] tests: add test for warning-free builds of `core` under `no_io_statics` Similar to the existing tests for other `cfg`s like `no_fp_fmt_parse`, add one for `no_io_statics`. This should prevent issues like the one in the parent commit. Signed-off-by: Miguel Ojeda --- tests/run-make/core-no-io-statics/rmake.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 tests/run-make/core-no-io-statics/rmake.rs diff --git a/tests/run-make/core-no-io-statics/rmake.rs b/tests/run-make/core-no-io-statics/rmake.rs new file mode 100644 index 0000000000000..0e75dfa8c273c --- /dev/null +++ b/tests/run-make/core-no-io-statics/rmake.rs @@ -0,0 +1,14 @@ +// This test checks that the core library of Rust can be compiled when enabling +// `--cfg no_io_statics`. + +use run_make_support::{rustc, source_root}; + +fn main() { + rustc() + .edition("2024") + .arg("-Dwarnings") + .crate_type("rlib") + .input(source_root().join("library/core/src/lib.rs")) + .cfg("no_io_statics") + .run(); +} From da0baa24c41da903b35aa146503e4261ffe26aaa Mon Sep 17 00:00:00 2001 From: Yara Date: Fri, 2 Oct 2026 15:38:20 +0200 Subject: [PATCH 06/10] reflection: fix ICE when TypeId::info called on ADT We are refactoring from a large enum where the fields of the variants contain all the reflection info to a flat enum containing only the type kind (struct/bool/array etc). While we removed the fields of Struct, Enum and Union we forgot to take out the const eval code writing into those fields. That gave an ICE. This fixes that. --- .../src/const_eval/type_info.rs | 4 +- .../src/const_eval/type_info/adt.rs | 178 +----------------- 2 files changed, 7 insertions(+), 175 deletions(-) diff --git a/compiler/rustc_const_eval/src/const_eval/type_info.rs b/compiler/rustc_const_eval/src/const_eval/type_info.rs index 0bece36c64ed0..0df2e9b5fd0ae 100644 --- a/compiler/rustc_const_eval/src/const_eval/type_info.rs +++ b/compiler/rustc_const_eval/src/const_eval/type_info.rs @@ -91,9 +91,7 @@ impl<'tcx> InterpCx<'tcx, CompileTimeMachine<'tcx>> { self.project_downcast_named(&field_dest, sym::Slice)?; variant } - ty::Adt(adt_def, generics) => { - self.write_adt_type_info(&field_dest, (ty, *adt_def), generics)? - } + ty::Adt(adt_def, _) => self.write_adt_type_info(&field_dest, *adt_def)?, ty::Bool => { let (variant, _variant_place) = self.project_downcast_named(&field_dest, sym::Bool)?; diff --git a/compiler/rustc_const_eval/src/const_eval/type_info/adt.rs b/compiler/rustc_const_eval/src/const_eval/type_info/adt.rs index 281d7b0a921ba..4ff1b37e953d4 100644 --- a/compiler/rustc_const_eval/src/const_eval/type_info/adt.rs +++ b/compiler/rustc_const_eval/src/const_eval/type_info/adt.rs @@ -1,13 +1,12 @@ use rustc_abi::{FieldIdx, VariantIdx}; -use rustc_middle::ty::layout::TyAndLayout; use rustc_middle::ty::{ - AdtDef, AdtKind, Const, ConstKind, GenericArgKind, GenericArgs, Region, Ty, VariantDef, + AdtDef, AdtKind, Const, ConstKind, GenericArgKind, GenericArgs, Region, Ty, }; use rustc_span::{bug, span_bug, sym}; use crate::const_eval::CompileTimeMachine; use crate::interpret::{ - CtfeProvenance, InterpCx, InterpResult, MPlaceTy, Projectable, Scalar, Writeable, interp_ok, + CtfeProvenance, InterpCx, InterpResult, MPlaceTy, Projectable, Writeable, interp_ok, }; impl<'tcx> InterpCx<'tcx, CompileTimeMachine<'tcx>> { @@ -15,190 +14,25 @@ impl<'tcx> InterpCx<'tcx, CompileTimeMachine<'tcx>> { pub(crate) fn write_adt_type_info( &mut self, place: &impl Writeable<'tcx, CtfeProvenance>, - adt: (Ty<'tcx>, AdtDef<'tcx>), - generics: &'tcx GenericArgs<'tcx>, + adt_def: AdtDef<'tcx>, ) -> InterpResult<'tcx, VariantIdx> { - let (adt_ty, adt_def) = adt; let variant_idx = match adt_def.adt_kind() { AdtKind::Struct => { - let (variant, variant_place) = self.project_downcast_named(place, sym::Struct)?; - let place = self.project_field(&variant_place, FieldIdx::ZERO)?; - self.write_struct_type_info( - place, - (adt_ty, adt_def.variant(VariantIdx::ZERO)), - generics, - )?; + let (variant, _) = self.project_downcast_named(place, sym::Struct)?; variant } AdtKind::Union => { - let (variant, variant_place) = self.project_downcast_named(place, sym::Union)?; - let place = self.project_field(&variant_place, FieldIdx::ZERO)?; - self.write_union_type_info( - place, - (adt_ty, adt_def.variant(VariantIdx::ZERO)), - generics, - )?; + let (variant, _) = self.project_downcast_named(place, sym::Union)?; variant } AdtKind::Enum => { - let (variant, variant_place) = self.project_downcast_named(place, sym::Enum)?; - let place = self.project_field(&variant_place, FieldIdx::ZERO)?; - self.write_enum_type_info(place, adt, generics)?; + let (variant, _) = self.project_downcast_named(place, sym::Enum)?; variant } }; interp_ok(variant_idx) } - pub(crate) fn write_struct_type_info( - &mut self, - place: impl Writeable<'tcx, CtfeProvenance>, - struct_: (Ty<'tcx>, &'tcx VariantDef), - generics: &'tcx GenericArgs<'tcx>, - ) -> InterpResult<'tcx> { - let (struct_ty, struct_def) = struct_; - let struct_layout = self.layout_of(struct_ty)?; - - for (field_idx, field) in - place.layout().ty.ty_adt_def().unwrap().non_enum_variant().fields.iter_enumerated() - { - let field_place = self.project_field(&place, field_idx)?; - - match field.name { - sym::generics => self.write_generics(&field_place, generics)?, - sym::fields => { - self.write_variant_fields(field_place, struct_def, struct_layout, generics)? - } - sym::non_exhaustive => { - let is_non_exhaustive = struct_def.is_field_list_non_exhaustive(); - self.write_scalar(Scalar::from_bool(is_non_exhaustive), &field_place)? - } - other => span_bug!(self.tcx.def_span(field.did), "unimplemented field {other}"), - } - } - - interp_ok(()) - } - - pub(crate) fn write_union_type_info( - &mut self, - place: impl Writeable<'tcx, CtfeProvenance>, - union_: (Ty<'tcx>, &'tcx VariantDef), - generics: &'tcx GenericArgs<'tcx>, - ) -> InterpResult<'tcx> { - let (union_ty, union_def) = union_; - let union_layout = self.layout_of(union_ty)?; - - for (field_idx, field) in - place.layout().ty.ty_adt_def().unwrap().non_enum_variant().fields.iter_enumerated() - { - let field_place = self.project_field(&place, field_idx)?; - - match field.name { - sym::generics => self.write_generics(&field_place, generics)?, - sym::fields => { - self.write_variant_fields(field_place, union_def, union_layout, generics)? - } - sym::non_exhaustive => { - let is_non_exhaustive = union_def.is_field_list_non_exhaustive(); - self.write_scalar(Scalar::from_bool(is_non_exhaustive), &field_place)? - } - other => span_bug!(self.tcx.def_span(field.did), "unimplemented field {other}"), - } - } - - interp_ok(()) - } - - pub(crate) fn write_enum_type_info( - &mut self, - place: impl Writeable<'tcx, CtfeProvenance>, - enum_: (Ty<'tcx>, AdtDef<'tcx>), - generics: &'tcx GenericArgs<'tcx>, - ) -> InterpResult<'tcx> { - let (enum_ty, enum_def) = enum_; - let enum_layout = self.layout_of(enum_ty)?; - - for (field_idx, field) in - place.layout().ty.ty_adt_def().unwrap().non_enum_variant().fields.iter_enumerated() - { - let field_place = self.project_field(&place, field_idx)?; - - match field.name { - sym::generics => self.write_generics(&field_place, generics)?, - sym::type_id_variants => { - self.allocate_fill_and_write_slice_ptr( - &field_place, - enum_def.variants().len() as u64, - |this, i, place| { - let variant_idx = VariantIdx::from_usize(i as usize); - let variant_def = &enum_def.variants()[variant_idx]; - let variant_layout = enum_layout.for_variant(this, variant_idx); - this.write_enum_variant(place, (variant_layout, &variant_def), generics) - }, - )?; - } - sym::non_exhaustive => { - let is_non_exhaustive = enum_def.is_variant_list_non_exhaustive(); - self.write_scalar(Scalar::from_bool(is_non_exhaustive), &field_place)? - } - other => span_bug!(self.tcx.def_span(field.did), "unimplemented field {other}"), - } - } - - interp_ok(()) - } - - fn write_enum_variant( - &mut self, - place: impl Writeable<'tcx, CtfeProvenance>, - variant: (TyAndLayout<'tcx>, &'tcx VariantDef), - generics: &'tcx GenericArgs<'tcx>, - ) -> InterpResult<'tcx> { - let (variant_layout, variant_def) = variant; - - for (field_idx, field_def) in - place.layout().ty.ty_adt_def().unwrap().non_enum_variant().fields.iter_enumerated() - { - let field_place = self.project_field(&place, field_idx)?; - match field_def.name { - sym::name => { - let name_place = self.allocate_str_dedup(variant_def.name.as_str())?; - let ptr = self.mplace_to_imm_ptr(&name_place, None)?; - self.write_immediate(*ptr, &field_place)? - } - sym::fields => { - self.write_variant_fields(field_place, &variant_def, variant_layout, generics)? - } - sym::non_exhaustive => { - let is_non_exhaustive = variant_def.is_field_list_non_exhaustive(); - self.write_scalar(Scalar::from_bool(is_non_exhaustive), &field_place)? - } - other => span_bug!(self.tcx.def_span(field_def.did), "unimplemented field {other}"), - } - } - interp_ok(()) - } - - // Write fields for struct, enum variants - fn write_variant_fields( - &mut self, - place: impl Writeable<'tcx, CtfeProvenance>, - variant_def: &'tcx VariantDef, - variant_layout: TyAndLayout<'tcx>, - generics: &'tcx GenericArgs<'tcx>, - ) -> InterpResult<'tcx> { - self.allocate_fill_and_write_slice_ptr( - &place, - variant_def.fields.len() as u64, - |this, i, place| { - let field_def = &variant_def.fields[FieldIdx::from_usize(i as usize)]; - let field_ty = field_def.ty(*this.tcx, generics).skip_norm_wip(); - this.write_field(field_ty, place, variant_layout, Some(field_def.name), i) - }, - ) - } - pub(super) fn write_generics( &mut self, place: &impl Writeable<'tcx, CtfeProvenance>, From 6065c5ae5206289fa17f13049c8bfad88fbfa3af Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Fri, 2 Oct 2026 16:42:27 -0400 Subject: [PATCH 07/10] Make the tracking issue template better suited for experiments --- .github/ISSUE_TEMPLATE/tracking_issue.md | 32 +++++++++++++++--------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/tracking_issue.md b/.github/ISSUE_TEMPLATE/tracking_issue.md index 0e0fdc5ca864e..e4bdcd212f381 100644 --- a/.github/ISSUE_TEMPLATE/tracking_issue.md +++ b/.github/ISSUE_TEMPLATE/tracking_issue.md @@ -1,6 +1,6 @@ --- name: Tracking Issue -about: A tracking issue for an accepted feature or RFC in Rust. +about: A tracking issue for an unstable feature in Rust. title: Tracking Issue for XXX labels: C-tracking-issue --- @@ -8,19 +8,27 @@ labels: C-tracking-issue NOTE: For library features, please use the "Library Tracking Issue" template instead. Thank you for creating a tracking issue! 📜 Tracking issues are for tracking a -feature from implementation to stabilisation. Make sure to include the relevant -RFC for the feature if it has one. Otherwise provide a short summary of the -feature and link any relevant PRs or issues, and remove any sections that are -not relevant to the feature. +feature from implementation to stabilisation. Remember to add team labels to the tracking issue. -For a language team feature, this would e.g., be `T-lang`. +For a language team feature, this would e.g., be `T-lang`: + +> @rustbot label T-lang + Such a feature should also be labeled with e.g., `F-my_feature`. This label is used to associate issues (e.g., bugs and design questions) to the feature. --> -This is a tracking issue for the RFC "XXX" (rust-lang/rfcs#NNN). -The feature gate for the issue is `#![feature(FFF)]`. +This is a tracking issue for `#![feature(FFF)]`. +The RFC for this feature is rust-lang/rfcs#NNN. + + ### About tracking issues @@ -38,8 +46,8 @@ implementing a feature, followed by a PR that stabilises the feature. However for larger features an implementation could be broken up into multiple PRs. --> -- [ ] Implement the RFC (cc @rust-lang/XXX -- can anyone write up mentoring - instructions?) +- [ ] Create the feature gate +- [ ] Implement the feature - [ ] Adjust documentation ([see instructions on rustc-dev-guide][doc-guide]) - [ ] Style updates for any new syntax ([nightly-style-procedure]) - [ ] Style team decision on new formatting @@ -59,8 +67,8 @@ stabilised. It is useful to link related discussions and conculsions as they develop. --> -- [ ] list all the "unresolved questions" found in the RFC to ensure they are - not forgotten. +- [ ] List any unresolved questions, including those listed in the RFC if there is one, + to ensure they are not forgotten. ### Implementation history From 89f50a5d3a11eb03f983aca5158590e4771bfd16 Mon Sep 17 00:00:00 2001 From: panstromek Date: Sat, 3 Oct 2026 07:01:18 +0200 Subject: [PATCH 08/10] ref: Avoid long iterator chain in all_rust_features --- compiler/rustc_target/src/target_features.rs | 42 ++++++++++---------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/compiler/rustc_target/src/target_features.rs b/compiler/rustc_target/src/target_features.rs index 2ee7dea9f8af3..5272ed2df59b3 100644 --- a/compiler/rustc_target/src/target_features.rs +++ b/compiler/rustc_target/src/target_features.rs @@ -1062,26 +1062,28 @@ const XTENSA_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[ /// /// IMPORTANT: If you're adding another feature list above, make sure to add it to this iterator! pub fn all_rust_features() -> impl Iterator { - std::iter::empty() - .chain(ARM_FEATURES) - .chain(AARCH64_FEATURES) - .chain(X86_FEATURES) - .chain(HEXAGON_FEATURES) - .chain(POWERPC_FEATURES) - .chain(MIPS_FEATURES) - .chain(NVPTX_FEATURES) - .chain(RISCV_FEATURES) - .chain(WASM_FEATURES) - .chain(BPF_FEATURES) - .chain(XTENSA_FEATURES) - .chain(CSKY_FEATURES) - .chain(LOONGARCH_FEATURES) - .chain(IBMZ_FEATURES) - .chain(SPARC_FEATURES) - .chain(M68K_FEATURES) - .chain(AVR_FEATURES) - .cloned() - .map(|(f, s, _)| (f, s)) + [ + ARM_FEATURES, + AARCH64_FEATURES, + X86_FEATURES, + HEXAGON_FEATURES, + POWERPC_FEATURES, + MIPS_FEATURES, + NVPTX_FEATURES, + RISCV_FEATURES, + WASM_FEATURES, + BPF_FEATURES, + XTENSA_FEATURES, + CSKY_FEATURES, + LOONGARCH_FEATURES, + IBMZ_FEATURES, + SPARC_FEATURES, + M68K_FEATURES, + AVR_FEATURES, + ] + .into_iter() + .flatten() + .map(|(f, s, _)| (*f, *s)) } /// Find which target architectures a feature belongs to. From 5d332db3461e1b67e6b99b9f89762d129677b2bd Mon Sep 17 00:00:00 2001 From: lcnr Date: Fri, 2 Oct 2026 11:52:42 +0200 Subject: [PATCH 09/10] add `ignore-compare-mode-next-solver` and change order to be consistent --- ...le-impls-shadowed-in-trait-def.next.stderr | 4 +- ...ble-impls-shadowed-in-trait-def.old.stderr | 4 +- ...-applicable-impls-shadowed-in-trait-def.rs | 1 + .../imply-relevant-nested-item-bounds-2.rs | 1 + .../imply-relevant-nested-item-bounds.rs | 1 + .../orphan-check-alias.classic.stderr | 2 +- .../coherence/orphan-check-alias.next.stderr | 2 +- tests/ui/coherence/orphan-check-alias.rs | 1 + .../orphan-check-projections-nested.rs | 1 + ...ions-not-covering-ambiguity.classic.stderr | 2 +- ...ections-not-covering-ambiguity.next.stderr | 2 +- ...heck-projections-not-covering-ambiguity.rs | 1 + ...ot-covering-multiple-params.classic.stderr | 4 +- ...s-not-covering-multiple-params.next.stderr | 4 +- ...rojections-not-covering-multiple-params.rs | 1 + ...ck-projections-not-covering.classic.stderr | 6 +-- ...check-projections-not-covering.next.stderr | 6 +-- .../orphan-check-projections-not-covering.rs | 1 + ...ck-projections-unsat-bounds.classic.stderr | 2 +- ...check-projections-unsat-bounds.next.stderr | 2 +- .../orphan-check-projections-unsat-bounds.rs | 1 + .../orphan-check-weak-aliases-covering.rs | 1 + .../ui/coinduction/canonicalization-rerun.rs | 1 + .../default-param-wf-concrete.next.stderr | 2 +- .../default-param-wf-concrete.old.stderr | 2 +- .../defaults/default-param-wf-concrete.rs | 1 + ...-on-failed-eval-with-vars-fail.next.stderr | 12 +++--- ...s-on-failed-eval-with-vars-fail.old.stderr | 2 +- ...ambiguous-on-failed-eval-with-vars-fail.rs | 1 + tests/ui/consts/const-fn-variant-ctor.rs | 1 + ...t-len-underflow-separate-spans.next.stderr | 4 +- ...st-len-underflow-separate-spans.old.stderr | 4 +- .../const-len-underflow-separate-spans.rs | 1 + tests/ui/consts/const-try.rs | 1 + tests/ui/consts/trait_alias.fail.stderr | 2 +- tests/ui/consts/trait_alias.next_fail.stderr | 2 +- tests/ui/consts/trait_alias.rs | 1 + .../coroutine/copy-fast-path-query-cycle.rs | 1 + tests/ui/coroutine/gen_block_is_fused_iter.rs | 1 + tests/ui/coroutine/gen_block_is_iter.rs | 1 + tests/ui/coroutine/gen_block_iterate.rs | 1 + tests/ui/error-codes/E0476.next.stderr | 8 ++-- tests/ui/error-codes/E0476.old.stderr | 8 ++-- tests/ui/error-codes/E0476.rs | 1 + .../incoherent-impl.next.stderr | 4 +- .../incoherent-impl.old.stderr | 4 +- .../incoherent-impl.rs | 1 + .../invalid.next.stderr | 16 ++++---- .../invalid.old.stderr | 16 ++++---- tests/ui/field_representing_types/invalid.rs | 1 + .../invariant.next.stderr | 6 +-- .../invariant.old.stderr | 6 +-- .../ui/field_representing_types/invariant.rs | 1 + .../non-struct.next.stderr | 8 ++-- .../non-struct.old.stderr | 8 ++-- .../ui/field_representing_types/non-struct.rs | 1 + .../nonexistent.next.stderr | 40 +++++++++---------- .../nonexistent.old.stderr | 40 +++++++++---------- .../field_representing_types/nonexistent.rs | 1 + .../not-field-if-packed.next.stderr | 4 +- .../not-field-if-packed.old.stderr | 4 +- .../not-field-if-packed.rs | 1 + .../not-field-if-unsized.next.stderr | 12 +++--- .../not-field-if-unsized.old.stderr | 8 ++-- .../not-field-if-unsized.rs | 1 + tests/ui/field_representing_types/offset.rs | 1 + .../privacy.next.stderr | 4 +- .../privacy.old.stderr | 4 +- tests/ui/field_representing_types/privacy.rs | 1 + .../projections.next.stderr | 10 ++--- .../projections.old.stderr | 10 ++--- .../field_representing_types/projections.rs | 1 + .../sized.next.stderr | 24 +++++------ .../field_representing_types/sized.old.stderr | 16 ++++---- tests/ui/field_representing_types/sized.rs | 1 + tests/ui/field_representing_types/traits.rs | 1 + .../weird-impls.next.stderr | 8 ++-- .../weird-impls.old.stderr | 8 ++-- .../field_representing_types/weird-impls.rs | 1 + tests/ui/float/f32-into-f32.next-solver.fixed | 1 + .../ui/float/f32-into-f32.next-solver.stderr | 10 ++--- tests/ui/float/f32-into-f32.old-solver.fixed | 1 + tests/ui/float/f32-into-f32.old-solver.stderr | 10 ++--- tests/ui/float/f32-into-f32.rs | 1 + .../rigid-hr-projection-issue-93340.rs | 1 + .../builtin-closure-like-bounds.rs | 1 + .../closure-bound-codegen-ice.rs | 1 + ...straint-from-nested-projection.next.stderr | 6 +-- .../constraint-from-nested-projection.rs | 1 + .../leak-check/leak-check-in-selection-1.rs | 1 + .../leak-check-in-selection-4-hr-nested.rs | 1 + .../leak-check-in-selection-5-ambig.rs | 1 + .../trait-bounds/issue-100689.rs | 1 + .../trait-bounds/issue-102899.rs | 1 + ...-method-resolution-opaque-type.next.stderr | 2 +- ...e-method-resolution-opaque-type.old.stderr | 2 +- ...rm-before-method-resolution-opaque-type.rs | 1 + .../auto-trait-selection-freeze.next.stderr | 2 +- .../auto-trait-selection-freeze.old.stderr | 6 +-- .../impl-trait/auto-trait-selection-freeze.rs | 1 + .../auto-trait-selection.next.stderr | 2 +- .../auto-trait-selection.old.stderr | 6 +-- tests/ui/impl-trait/auto-trait-selection.rs | 1 + tests/ui/impl-trait/call_method_ambiguous.rs | 1 + .../call_method_on_inherent_impl.rs | 1 + ...inherent_impl_on_rigid_type.current.stderr | 4 +- ...on_inherent_impl_on_rigid_type.next.stderr | 2 +- ...l_method_on_inherent_impl_on_rigid_type.rs | 1 + ...od_on_inherent_impl_ref-err.current.stderr | 4 +- ...ethod_on_inherent_impl_ref-err.next.stderr | 4 +- .../call_method_on_inherent_impl_ref-err.rs | 1 + .../call_method_on_inherent_impl_ref-ok.rs | 1 + ...-to-resolve-instance-ice-105488.old.stderr | 2 +- .../failed-to-resolve-instance-ice-105488.rs | 5 ++- .../hidden-type-is-opaque-2.default.stderr | 4 +- .../hidden-type-is-opaque-2.next.stderr | 4 +- .../ui/impl-trait/hidden-type-is-opaque-2.rs | 1 + .../method/broken-deref-chain.current.stderr | 2 +- .../impl-trait/method/broken-deref-chain.rs | 1 + .../ui/impl-trait/method/method-resolution.rs | 1 + .../method/method-resolution2.next.stderr | 6 +-- .../impl-trait/method/method-resolution2.rs | 1 + .../method/method-resolution3.current.stderr | 6 +-- .../method/method-resolution3.next.stderr | 6 +-- .../impl-trait/method/method-resolution3.rs | 1 + .../impl-trait/method/method-resolution4.rs | 1 + ...olution5-deref-no-constrain.current.stderr | 2 +- .../method-resolution5-deref-no-constrain.rs | 1 + .../method/method-resolution5-deref.rs | 1 + .../would-constrain-opaque.current.stderr | 8 ++-- .../method/would-constrain-opaque.next.stderr | 4 +- .../method/would-constrain-opaque.rs | 1 + tests/ui/impl-trait/recursive-bound-eval.rs | 1 + .../rpit/const_check_false_cycle.rs | 1 + .../ui/impl-trait/rpit/dyn-in-nested-rpit.rs | 1 + .../precise-capture-155151.current.stderr | 2 +- .../impl-trait/rpit/precise-capture-155151.rs | 1 + tests/ui/impl-trait/unsized_coercion.rs | 1 + .../impl-trait/unsized_coercion2.old.stderr | 2 +- tests/ui/impl-trait/unsized_coercion2.rs | 1 + .../impl-trait/unsized_coercion3.next.stderr | 8 ++-- .../impl-trait/unsized_coercion3.old.stderr | 2 +- tests/ui/impl-trait/unsized_coercion3.rs | 1 + tests/ui/impl-trait/unsized_coercion4.rs | 1 + .../impl-trait/unsized_coercion5.old.stderr | 2 +- tests/ui/impl-trait/unsized_coercion5.rs | 1 + ...-on-ref-due-to-missing-bound.current.fixed | 1 + ...on-ref-due-to-missing-bound.current.stderr | 4 +- ...all-on-ref-due-to-missing-bound.next.fixed | 1 + ...ll-on-ref-due-to-missing-bound.next.stderr | 4 +- ...-clone-call-on-ref-due-to-missing-bound.rs | 1 + .../basic/method-on-never.current.stderr | 20 +++++----- .../basic/method-on-never.next.stderr | 20 +++++----- tests/ui/never_type/basic/method-on-never.rs | 1 + tests/ui/sized-hierarchy/alias-bounds.rs | 1 + .../bound-on-assoc-type-projection-1.rs | 1 + .../elaboration-opt-regions-1.rs | 1 + .../elaboration-opt-regions.rs | 1 + ...efault-items-drop-coherence.current.stderr | 2 +- ...n-default-items-drop-coherence.next.stderr | 2 +- ...ialization-default-items-drop-coherence.rs | 1 + .../assoc-type-const-bound-usage-0.rs | 1 + ...pe-const-bound-usage-fail-2.current.stderr | 4 +- ...-type-const-bound-usage-fail-2.next.stderr | 4 +- .../assoc-type-const-bound-usage-fail-2.rs | 1 + ...type-const-bound-usage-fail.current.stderr | 4 +- ...oc-type-const-bound-usage-fail.next.stderr | 4 +- .../assoc-type-const-bound-usage-fail.rs | 1 + .../const-traits/assoc-type.current.stderr | 4 +- .../const-traits/assoc-type.next.stderr | 4 +- tests/ui/traits/const-traits/assoc-type.rs | 1 + .../call-const-closure.next.stderr | 2 +- .../call-const-closure.old.stderr | 2 +- .../traits/const-traits/call-const-closure.rs | 1 + tests/ui/traits/const-traits/call.rs | 1 + ...const-closure-inherited-const-condition.rs | 1 + .../const-closure-trait-method.rs | 1 + .../ui/traits/const-traits/const-closures.rs | 1 + .../const-drop-fail.new_precise.stderr | 12 +++--- .../const-drop-fail.new_stock.stderr | 12 +++--- .../const-drop-fail.old_precise.stderr | 12 +++--- .../const-drop-fail.old_stock.stderr | 12 +++--- .../ui/traits/const-traits/const-drop-fail.rs | 1 + .../drop-manually-drop-no-drop-impl.rs | 1 + .../traits/const-traits/drop-manually-drop.rs | 1 + .../extern-types.current.stderr | 4 +- .../extern-types.next.stderr | 4 +- .../default_auto_traits/extern-types.rs | 1 + ...-missing-clone-issue-141241.current.stderr | 2 +- ...ice-missing-clone-issue-141241.next.stderr | 2 +- .../cow-slice-missing-clone-issue-141241.rs | 1 + .../generic-cow-inference-regression.rs | 1 + .../traits/issue-90662-projection-caching.rs | 1 + .../next-solver/adt-const-param-projection.rs | 1 + .../next-solver/alias-bound-preference.rs | 1 + .../ambiguous-impl-in-resolve.next.stderr | 4 +- .../ambiguous-impl-in-resolve.old.stderr | 4 +- .../next-solver/ambiguous-impl-in-resolve.rs | 1 + ...re-inference-hr-ambig-alias-naming-self.rs | 1 + ...th-bound-vars-incomplete-generalization.rs | 1 + ...ark-const-aliases-as-rigid-in-param-env.rs | 1 + .../dump-layout-opaque-coroutine.next.stderr | 2 +- .../dump-layout-opaque-coroutine.old.stderr | 2 +- .../opaques/dump-layout-opaque-coroutine.rs | 1 + .../overflow/fcw-on-auto-trait.next.stderr | 2 +- .../next-solver/overflow/fcw-on-auto-trait.rs | 1 + .../overflow/fcw-on-normalization.next.stderr | 2 +- .../overflow/fcw-on-normalization.rs | 1 + ...flow-to-ambig-with-constraints.next.stderr | 2 +- .../fcw-overflow-to-ambig-with-constraints.rs | 1 + .../fcw-overflow-to-error.next.stderr | 2 +- .../overflow/fcw-overflow-to-error.rs | 1 + .../next-solver/overflow/nalgebra-hang.rs | 1 + ...ram-env-normalization-fallback.next.stderr | 12 +++--- ...aram-env-normalization-fallback.old.stderr | 12 +++--- .../param-env-normalization-fallback.rs | 1 + .../self-referential-closure-sig-1.rs | 1 + .../self-referential-closure-sig-3.rs | 1 + ...field-location-issue-146016.current.stderr | 26 ++++++------ ...nd-field-location-issue-146016.next.stderr | 26 ++++++------ .../non-send-field-location-issue-146016.rs | 1 + .../normalize/pointee-normalize-equate.rs | 1 + .../illegal-upcast-to-impl-opaque.rs | 1 + .../destructure_tait-ice-113594.rs | 1 + .../lifetime_mismatch.current.stderr | 8 ++-- .../lifetime_mismatch.rs | 1 + .../method_resolution.current.stderr | 2 +- .../method_resolution.next.stderr | 2 +- .../method_resolution.rs | 1 + .../method_resolution2.rs | 1 + .../method_resolution3.current.stderr | 4 +- .../method_resolution3.next.stderr | 4 +- .../method_resolution3.rs | 1 + .../method_resolution4.current.stderr | 4 +- .../method_resolution4.next.stderr | 4 +- .../method_resolution4.rs | 1 + .../method_resolution5.rs | 1 + ...on_trait_method_from_opaque.current.stderr | 4 +- ...ution_trait_method_from_opaque.next.stderr | 2 +- ...hod_resolution_trait_method_from_opaque.rs | 1 + ...ef-uses-in-one-fn-lifetimes.current.stderr | 4 +- .../multiple-def-uses-in-one-fn-lifetimes.rs | 1 + .../mututally-recursive-overflow.rs | 5 ++- .../precise-capture-155151.current.stderr | 2 +- .../precise-capture-155151.rs | 1 + .../type-alias-impl-trait/tait-normalize.rs | 1 + .../wf-in-associated-type.fail.stderr | 6 +-- .../wf-in-associated-type.rs | 1 + tests/ui/typeck/issue-116864.current.stderr | 4 +- tests/ui/typeck/issue-116864.next.stderr | 4 +- tests/ui/typeck/issue-116864.rs | 1 + .../unsafe-fields/auto-traits.current.stderr | 6 +-- .../ui/unsafe-fields/auto-traits.next.stderr | 6 +-- tests/ui/unsafe-fields/auto-traits.rs | 1 + 254 files changed, 520 insertions(+), 388 deletions(-) diff --git a/tests/ui/associated-types/always-applicable-impls-shadowed-in-trait-def.next.stderr b/tests/ui/associated-types/always-applicable-impls-shadowed-in-trait-def.next.stderr index 30eccc3a72d51..9baf1e6c84a86 100644 --- a/tests/ui/associated-types/always-applicable-impls-shadowed-in-trait-def.next.stderr +++ b/tests/ui/associated-types/always-applicable-impls-shadowed-in-trait-def.next.stderr @@ -1,11 +1,11 @@ error[E0277]: the trait bound `Self: Eq<::Assoc>` is not satisfied - --> $DIR/always-applicable-impls-shadowed-in-trait-def.rs:13:17 + --> $DIR/always-applicable-impls-shadowed-in-trait-def.rs:14:17 | LL | fn foo() -> IsEqual { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Eq<::Assoc>` is not implemented for `Self` | note: required by a bound in `IsEqual` - --> $DIR/always-applicable-impls-shadowed-in-trait-def.rs:9:19 + --> $DIR/always-applicable-impls-shadowed-in-trait-def.rs:10:19 | LL | struct IsEqual, U>(T, U); | ^^^^^ required by this bound in `IsEqual` diff --git a/tests/ui/associated-types/always-applicable-impls-shadowed-in-trait-def.old.stderr b/tests/ui/associated-types/always-applicable-impls-shadowed-in-trait-def.old.stderr index 30eccc3a72d51..9baf1e6c84a86 100644 --- a/tests/ui/associated-types/always-applicable-impls-shadowed-in-trait-def.old.stderr +++ b/tests/ui/associated-types/always-applicable-impls-shadowed-in-trait-def.old.stderr @@ -1,11 +1,11 @@ error[E0277]: the trait bound `Self: Eq<::Assoc>` is not satisfied - --> $DIR/always-applicable-impls-shadowed-in-trait-def.rs:13:17 + --> $DIR/always-applicable-impls-shadowed-in-trait-def.rs:14:17 | LL | fn foo() -> IsEqual { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Eq<::Assoc>` is not implemented for `Self` | note: required by a bound in `IsEqual` - --> $DIR/always-applicable-impls-shadowed-in-trait-def.rs:9:19 + --> $DIR/always-applicable-impls-shadowed-in-trait-def.rs:10:19 | LL | struct IsEqual, U>(T, U); | ^^^^^ required by this bound in `IsEqual` diff --git a/tests/ui/associated-types/always-applicable-impls-shadowed-in-trait-def.rs b/tests/ui/associated-types/always-applicable-impls-shadowed-in-trait-def.rs index 2f8abb6a70d86..8905630617302 100644 --- a/tests/ui/associated-types/always-applicable-impls-shadowed-in-trait-def.rs +++ b/tests/ui/associated-types/always-applicable-impls-shadowed-in-trait-def.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver // Testing that even if there's an always applicable blanket impl, the trait diff --git a/tests/ui/associated-types/imply-relevant-nested-item-bounds-2.rs b/tests/ui/associated-types/imply-relevant-nested-item-bounds-2.rs index 864c31893504f..eb5a87ebf95a2 100644 --- a/tests/ui/associated-types/imply-relevant-nested-item-bounds-2.rs +++ b/tests/ui/associated-types/imply-relevant-nested-item-bounds-2.rs @@ -1,5 +1,6 @@ //@ check-pass //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver trait Trait diff --git a/tests/ui/associated-types/imply-relevant-nested-item-bounds.rs b/tests/ui/associated-types/imply-relevant-nested-item-bounds.rs index 5a477a5b34941..235edbdaebf13 100644 --- a/tests/ui/associated-types/imply-relevant-nested-item-bounds.rs +++ b/tests/ui/associated-types/imply-relevant-nested-item-bounds.rs @@ -1,5 +1,6 @@ //@ check-pass //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver trait Foo diff --git a/tests/ui/coherence/orphan-check-alias.classic.stderr b/tests/ui/coherence/orphan-check-alias.classic.stderr index 29e09ff550e9e..7b263cc7996f9 100644 --- a/tests/ui/coherence/orphan-check-alias.classic.stderr +++ b/tests/ui/coherence/orphan-check-alias.classic.stderr @@ -1,5 +1,5 @@ warning: type parameter `T` must be covered by another type when it appears before the first local type (`B`) - --> $DIR/orphan-check-alias.rs:21:6 + --> $DIR/orphan-check-alias.rs:22:6 | LL | impl foreign::Trait2 for ::Assoc { | ^ uncovered type parameter diff --git a/tests/ui/coherence/orphan-check-alias.next.stderr b/tests/ui/coherence/orphan-check-alias.next.stderr index 29e09ff550e9e..7b263cc7996f9 100644 --- a/tests/ui/coherence/orphan-check-alias.next.stderr +++ b/tests/ui/coherence/orphan-check-alias.next.stderr @@ -1,5 +1,5 @@ warning: type parameter `T` must be covered by another type when it appears before the first local type (`B`) - --> $DIR/orphan-check-alias.rs:21:6 + --> $DIR/orphan-check-alias.rs:22:6 | LL | impl foreign::Trait2 for ::Assoc { | ^ uncovered type parameter diff --git a/tests/ui/coherence/orphan-check-alias.rs b/tests/ui/coherence/orphan-check-alias.rs index d6c9d0aa8bea1..711e7d83a63e5 100644 --- a/tests/ui/coherence/orphan-check-alias.rs +++ b/tests/ui/coherence/orphan-check-alias.rs @@ -1,6 +1,7 @@ // Alias might not cover type parameters. //@ revisions: classic next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ aux-crate:foreign=parametrized-trait.rs diff --git a/tests/ui/coherence/orphan-check-projections-nested.rs b/tests/ui/coherence/orphan-check-projections-nested.rs index ec244a8005b16..ab4ba9fcf1861 100644 --- a/tests/ui/coherence/orphan-check-projections-nested.rs +++ b/tests/ui/coherence/orphan-check-projections-nested.rs @@ -2,6 +2,7 @@ //@ check-pass //@ revisions: classic next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ aux-crate:dep=trait-with-assoc-ty.rs //@ edition: 2021 diff --git a/tests/ui/coherence/orphan-check-projections-not-covering-ambiguity.classic.stderr b/tests/ui/coherence/orphan-check-projections-not-covering-ambiguity.classic.stderr index 635d9e6619004..e85dd1c49ecad 100644 --- a/tests/ui/coherence/orphan-check-projections-not-covering-ambiguity.classic.stderr +++ b/tests/ui/coherence/orphan-check-projections-not-covering-ambiguity.classic.stderr @@ -1,5 +1,5 @@ warning: type parameter `T` must be covered by another type when it appears before the first local type (`Local`) - --> $DIR/orphan-check-projections-not-covering-ambiguity.rs:25:6 + --> $DIR/orphan-check-projections-not-covering-ambiguity.rs:26:6 | LL | impl foreign::Trait1 for ::Output {} | ^ uncovered type parameter diff --git a/tests/ui/coherence/orphan-check-projections-not-covering-ambiguity.next.stderr b/tests/ui/coherence/orphan-check-projections-not-covering-ambiguity.next.stderr index 635d9e6619004..e85dd1c49ecad 100644 --- a/tests/ui/coherence/orphan-check-projections-not-covering-ambiguity.next.stderr +++ b/tests/ui/coherence/orphan-check-projections-not-covering-ambiguity.next.stderr @@ -1,5 +1,5 @@ warning: type parameter `T` must be covered by another type when it appears before the first local type (`Local`) - --> $DIR/orphan-check-projections-not-covering-ambiguity.rs:25:6 + --> $DIR/orphan-check-projections-not-covering-ambiguity.rs:26:6 | LL | impl foreign::Trait1 for ::Output {} | ^ uncovered type parameter diff --git a/tests/ui/coherence/orphan-check-projections-not-covering-ambiguity.rs b/tests/ui/coherence/orphan-check-projections-not-covering-ambiguity.rs index 227d8535232df..7070ba8e02b26 100644 --- a/tests/ui/coherence/orphan-check-projections-not-covering-ambiguity.rs +++ b/tests/ui/coherence/orphan-check-projections-not-covering-ambiguity.rs @@ -7,6 +7,7 @@ // ambiguity. //@ revisions: classic next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/coherence/orphan-check-projections-not-covering-multiple-params.classic.stderr b/tests/ui/coherence/orphan-check-projections-not-covering-multiple-params.classic.stderr index e75d4e61772f1..68989253e25ce 100644 --- a/tests/ui/coherence/orphan-check-projections-not-covering-multiple-params.classic.stderr +++ b/tests/ui/coherence/orphan-check-projections-not-covering-multiple-params.classic.stderr @@ -1,5 +1,5 @@ warning: type parameter `T` must be covered by another type when it appears before the first local type (`LocalTy`) - --> $DIR/orphan-check-projections-not-covering-multiple-params.rs:17:6 + --> $DIR/orphan-check-projections-not-covering-multiple-params.rs:18:6 | LL | impl foreign::Trait0 for <() as Trait>::Assoc {} | ^ uncovered type parameter @@ -13,7 +13,7 @@ LL | impl foreign::Trait0 for <() as Trait>::Assoc {} = note: `#[warn(uncovered_param_in_projection)]` (part of `#[warn(future_incompatible)]`) on by default warning: type parameter `U` must be covered by another type when it appears before the first local type (`LocalTy`) - --> $DIR/orphan-check-projections-not-covering-multiple-params.rs:17:9 + --> $DIR/orphan-check-projections-not-covering-multiple-params.rs:18:9 | LL | impl foreign::Trait0 for <() as Trait>::Assoc {} | ^ uncovered type parameter diff --git a/tests/ui/coherence/orphan-check-projections-not-covering-multiple-params.next.stderr b/tests/ui/coherence/orphan-check-projections-not-covering-multiple-params.next.stderr index e75d4e61772f1..68989253e25ce 100644 --- a/tests/ui/coherence/orphan-check-projections-not-covering-multiple-params.next.stderr +++ b/tests/ui/coherence/orphan-check-projections-not-covering-multiple-params.next.stderr @@ -1,5 +1,5 @@ warning: type parameter `T` must be covered by another type when it appears before the first local type (`LocalTy`) - --> $DIR/orphan-check-projections-not-covering-multiple-params.rs:17:6 + --> $DIR/orphan-check-projections-not-covering-multiple-params.rs:18:6 | LL | impl foreign::Trait0 for <() as Trait>::Assoc {} | ^ uncovered type parameter @@ -13,7 +13,7 @@ LL | impl foreign::Trait0 for <() as Trait>::Assoc {} = note: `#[warn(uncovered_param_in_projection)]` (part of `#[warn(future_incompatible)]`) on by default warning: type parameter `U` must be covered by another type when it appears before the first local type (`LocalTy`) - --> $DIR/orphan-check-projections-not-covering-multiple-params.rs:17:9 + --> $DIR/orphan-check-projections-not-covering-multiple-params.rs:18:9 | LL | impl foreign::Trait0 for <() as Trait>::Assoc {} | ^ uncovered type parameter diff --git a/tests/ui/coherence/orphan-check-projections-not-covering-multiple-params.rs b/tests/ui/coherence/orphan-check-projections-not-covering-multiple-params.rs index c5340e854054d..e1369d5466181 100644 --- a/tests/ui/coherence/orphan-check-projections-not-covering-multiple-params.rs +++ b/tests/ui/coherence/orphan-check-projections-not-covering-multiple-params.rs @@ -1,4 +1,5 @@ //@ revisions: classic next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/coherence/orphan-check-projections-not-covering.classic.stderr b/tests/ui/coherence/orphan-check-projections-not-covering.classic.stderr index 6d1a3114937af..425ba8b6e9ad9 100644 --- a/tests/ui/coherence/orphan-check-projections-not-covering.classic.stderr +++ b/tests/ui/coherence/orphan-check-projections-not-covering.classic.stderr @@ -1,5 +1,5 @@ warning: type parameter `T` must be covered by another type when it appears before the first local type (`Local`) - --> $DIR/orphan-check-projections-not-covering.rs:22:6 + --> $DIR/orphan-check-projections-not-covering.rs:23:6 | LL | impl foreign::Trait0 for ::Output {} | ^ uncovered type parameter @@ -13,7 +13,7 @@ LL | impl foreign::Trait0 for ::Output {} = note: `#[warn(uncovered_param_in_projection)]` (part of `#[warn(future_incompatible)]`) on by default warning: type parameter `T` must be covered by another type when it appears before the first local type (`Local`) - --> $DIR/orphan-check-projections-not-covering.rs:27:6 + --> $DIR/orphan-check-projections-not-covering.rs:28:6 | LL | impl foreign::Trait0<::Output, Local, T> for Option {} | ^ uncovered type parameter @@ -26,7 +26,7 @@ LL | impl foreign::Trait0<::Output, Local, T> for Option {} = note: for more information, see issue #124559 warning: type parameter `T` must be covered by another type when it appears before the first local type (`Local`) - --> $DIR/orphan-check-projections-not-covering.rs:40:6 + --> $DIR/orphan-check-projections-not-covering.rs:41:6 | LL | impl foreign::Trait1 for ::Output {} | ^ uncovered type parameter diff --git a/tests/ui/coherence/orphan-check-projections-not-covering.next.stderr b/tests/ui/coherence/orphan-check-projections-not-covering.next.stderr index 6d1a3114937af..425ba8b6e9ad9 100644 --- a/tests/ui/coherence/orphan-check-projections-not-covering.next.stderr +++ b/tests/ui/coherence/orphan-check-projections-not-covering.next.stderr @@ -1,5 +1,5 @@ warning: type parameter `T` must be covered by another type when it appears before the first local type (`Local`) - --> $DIR/orphan-check-projections-not-covering.rs:22:6 + --> $DIR/orphan-check-projections-not-covering.rs:23:6 | LL | impl foreign::Trait0 for ::Output {} | ^ uncovered type parameter @@ -13,7 +13,7 @@ LL | impl foreign::Trait0 for ::Output {} = note: `#[warn(uncovered_param_in_projection)]` (part of `#[warn(future_incompatible)]`) on by default warning: type parameter `T` must be covered by another type when it appears before the first local type (`Local`) - --> $DIR/orphan-check-projections-not-covering.rs:27:6 + --> $DIR/orphan-check-projections-not-covering.rs:28:6 | LL | impl foreign::Trait0<::Output, Local, T> for Option {} | ^ uncovered type parameter @@ -26,7 +26,7 @@ LL | impl foreign::Trait0<::Output, Local, T> for Option {} = note: for more information, see issue #124559 warning: type parameter `T` must be covered by another type when it appears before the first local type (`Local`) - --> $DIR/orphan-check-projections-not-covering.rs:40:6 + --> $DIR/orphan-check-projections-not-covering.rs:41:6 | LL | impl foreign::Trait1 for ::Output {} | ^ uncovered type parameter diff --git a/tests/ui/coherence/orphan-check-projections-not-covering.rs b/tests/ui/coherence/orphan-check-projections-not-covering.rs index 8c2a9a17e2b84..a4722da1f8aea 100644 --- a/tests/ui/coherence/orphan-check-projections-not-covering.rs +++ b/tests/ui/coherence/orphan-check-projections-not-covering.rs @@ -2,6 +2,7 @@ // Projections might not cover type parameters. //@ revisions: classic next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/coherence/orphan-check-projections-unsat-bounds.classic.stderr b/tests/ui/coherence/orphan-check-projections-unsat-bounds.classic.stderr index 9021a4757b851..54fcaf1705c2f 100644 --- a/tests/ui/coherence/orphan-check-projections-unsat-bounds.classic.stderr +++ b/tests/ui/coherence/orphan-check-projections-unsat-bounds.classic.stderr @@ -1,5 +1,5 @@ warning: type parameter `T` must be covered by another type when it appears before the first local type (`LocalTy`) - --> $DIR/orphan-check-projections-unsat-bounds.rs:28:6 + --> $DIR/orphan-check-projections-unsat-bounds.rs:29:6 | LL | impl foreign::Trait1 for as Discard>::Output | ^ uncovered type parameter diff --git a/tests/ui/coherence/orphan-check-projections-unsat-bounds.next.stderr b/tests/ui/coherence/orphan-check-projections-unsat-bounds.next.stderr index 9021a4757b851..54fcaf1705c2f 100644 --- a/tests/ui/coherence/orphan-check-projections-unsat-bounds.next.stderr +++ b/tests/ui/coherence/orphan-check-projections-unsat-bounds.next.stderr @@ -1,5 +1,5 @@ warning: type parameter `T` must be covered by another type when it appears before the first local type (`LocalTy`) - --> $DIR/orphan-check-projections-unsat-bounds.rs:28:6 + --> $DIR/orphan-check-projections-unsat-bounds.rs:29:6 | LL | impl foreign::Trait1 for as Discard>::Output | ^ uncovered type parameter diff --git a/tests/ui/coherence/orphan-check-projections-unsat-bounds.rs b/tests/ui/coherence/orphan-check-projections-unsat-bounds.rs index bc52673a016f4..05d64ab282687 100644 --- a/tests/ui/coherence/orphan-check-projections-unsat-bounds.rs +++ b/tests/ui/coherence/orphan-check-projections-unsat-bounds.rs @@ -4,6 +4,7 @@ // unsatisfied bounds while normalization outside of orphan checking succeeds. //@ revisions: classic next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/coherence/orphan-check-weak-aliases-covering.rs b/tests/ui/coherence/orphan-check-weak-aliases-covering.rs index d976f9d5f360a..7e4dbf1465996 100644 --- a/tests/ui/coherence/orphan-check-weak-aliases-covering.rs +++ b/tests/ui/coherence/orphan-check-weak-aliases-covering.rs @@ -2,6 +2,7 @@ //@ check-pass //@ revisions: classic next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ aux-crate:foreign=parametrized-trait.rs diff --git a/tests/ui/coinduction/canonicalization-rerun.rs b/tests/ui/coinduction/canonicalization-rerun.rs index 06085ebfe0ba5..b6878e18c9081 100644 --- a/tests/ui/coinduction/canonicalization-rerun.rs +++ b/tests/ui/coinduction/canonicalization-rerun.rs @@ -1,5 +1,6 @@ //@ check-pass //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver // If we use canonical goals during trait solving we have to reevaluate diff --git a/tests/ui/const-generics/defaults/default-param-wf-concrete.next.stderr b/tests/ui/const-generics/defaults/default-param-wf-concrete.next.stderr index 133d8f6b0f086..df2d5162655ec 100644 --- a/tests/ui/const-generics/defaults/default-param-wf-concrete.next.stderr +++ b/tests/ui/const-generics/defaults/default-param-wf-concrete.next.stderr @@ -1,5 +1,5 @@ error[E0080]: attempt to compute `u8::MAX + 1_u8`, which would overflow - --> $DIR/default-param-wf-concrete.rs:4:28 + --> $DIR/default-param-wf-concrete.rs:5:28 | LL | struct Foo; | ^^^^^^^ evaluation of `Foo::{constant#0}` failed here diff --git a/tests/ui/const-generics/defaults/default-param-wf-concrete.old.stderr b/tests/ui/const-generics/defaults/default-param-wf-concrete.old.stderr index 133d8f6b0f086..df2d5162655ec 100644 --- a/tests/ui/const-generics/defaults/default-param-wf-concrete.old.stderr +++ b/tests/ui/const-generics/defaults/default-param-wf-concrete.old.stderr @@ -1,5 +1,5 @@ error[E0080]: attempt to compute `u8::MAX + 1_u8`, which would overflow - --> $DIR/default-param-wf-concrete.rs:4:28 + --> $DIR/default-param-wf-concrete.rs:5:28 | LL | struct Foo; | ^^^^^^^ evaluation of `Foo::{constant#0}` failed here diff --git a/tests/ui/const-generics/defaults/default-param-wf-concrete.rs b/tests/ui/const-generics/defaults/default-param-wf-concrete.rs index 0385e55e3b29a..a2a2509a1dee1 100644 --- a/tests/ui/const-generics/defaults/default-param-wf-concrete.rs +++ b/tests/ui/const-generics/defaults/default-param-wf-concrete.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver struct Foo; diff --git a/tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.next.stderr b/tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.next.stderr index 0bbfe0626470d..0020a58df5768 100644 --- a/tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.next.stderr +++ b/tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.next.stderr @@ -1,11 +1,11 @@ error[E0284]: type annotations needed for `([(); _], [(); 10])` - --> $DIR/ambiguous-on-failed-eval-with-vars-fail.rs:33:9 + --> $DIR/ambiguous-on-failed-eval-with-vars-fail.rs:34:9 | LL | let (mut arr, mut arr_with_weird_len) = free(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ------ type must be known at this point | note: required by a const generic parameter in `free` - --> $DIR/ambiguous-on-failed-eval-with-vars-fail.rs:28:9 + --> $DIR/ambiguous-on-failed-eval-with-vars-fail.rs:29:9 | LL | fn free() -> ([(); N], [(); gca!(FREE::)]) { | ^^^^^^^^^^^^^^ required by this const generic parameter in `free` @@ -15,7 +15,7 @@ LL | let (mut arr, mut arr_with_weird_len): ([_; N], _) = free(); | +++++++++++++ error[E0271]: type mismatch resolving `FREE<10> == 2` - --> $DIR/ambiguous-on-failed-eval-with-vars-fail.rs:39:45 + --> $DIR/ambiguous-on-failed-eval-with-vars-fail.rs:40:45 | LL | let (mut arr, mut arr_with_weird_len) = free(); | ^^^^^^ expected `2`, found `10` @@ -24,14 +24,14 @@ LL | let (mut arr, mut arr_with_weird_len) = free(); found constant `10` error[E0284]: type annotations needed for `([(); _], [(); 10])` - --> $DIR/ambiguous-on-failed-eval-with-vars-fail.rs:50:9 + --> $DIR/ambiguous-on-failed-eval-with-vars-fail.rs:51:9 | LL | let (mut arr, mut arr_with_weird_len) = proj(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ------ type must be known at this point | = note: cannot satisfy `::PROJ<_> == 10` note: required by a const generic parameter in `proj` - --> $DIR/ambiguous-on-failed-eval-with-vars-fail.rs:45:9 + --> $DIR/ambiguous-on-failed-eval-with-vars-fail.rs:46:9 | LL | fn proj() -> ([(); N], [(); gca!(::PROJ::)]) { | ^^^^^^^^^^^^^^ required by this const generic parameter in `proj` @@ -41,7 +41,7 @@ LL | let (mut arr, mut arr_with_weird_len): ([_; N], _) = proj(); | +++++++++++++ error[E0271]: type mismatch resolving `::PROJ<10> == 2` - --> $DIR/ambiguous-on-failed-eval-with-vars-fail.rs:56:45 + --> $DIR/ambiguous-on-failed-eval-with-vars-fail.rs:57:45 | LL | let (mut arr, mut arr_with_weird_len) = proj(); | ^^^^^^ expected `2`, found `10` diff --git a/tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.old.stderr b/tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.old.stderr index f3cb4a06cddc8..ffe00153daab8 100644 --- a/tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.old.stderr +++ b/tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.old.stderr @@ -1,5 +1,5 @@ error: `gca_const_items` requires -Znext-solver=globally to be enabled - --> $DIR/ambiguous-on-failed-eval-with-vars-fail.rs:9:5 + --> $DIR/ambiguous-on-failed-eval-with-vars-fail.rs:10:5 | LL | gca_const_items, | ^^^^^^^^^^^^^^^ diff --git a/tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.rs b/tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.rs index e24b11dbb1746..0449754451c2d 100644 --- a/tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.rs +++ b/tests/ui/const-generics/gca/ambiguous-on-failed-eval-with-vars-fail.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver // (`test_free_mismatch` is quite difficult to implement in the old solver, so make sure this test // runs on the old solver, just in case someone attempts to implement GCA for the old solver and diff --git a/tests/ui/consts/const-fn-variant-ctor.rs b/tests/ui/consts/const-fn-variant-ctor.rs index db8324f3997bd..b56f3145c11c3 100644 --- a/tests/ui/consts/const-fn-variant-ctor.rs +++ b/tests/ui/consts/const-fn-variant-ctor.rs @@ -1,6 +1,7 @@ //@ check-pass // @ needs-rustc-debug-assertions //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(const_destruct, const_trait_impl)] diff --git a/tests/ui/consts/const-len-underflow-separate-spans.next.stderr b/tests/ui/consts/const-len-underflow-separate-spans.next.stderr index ef46522f7f5d4..d895803b706c3 100644 --- a/tests/ui/consts/const-len-underflow-separate-spans.next.stderr +++ b/tests/ui/consts/const-len-underflow-separate-spans.next.stderr @@ -1,11 +1,11 @@ error[E0080]: attempt to compute `1_usize - 2_usize`, which would overflow - --> $DIR/const-len-underflow-separate-spans.rs:10:20 + --> $DIR/const-len-underflow-separate-spans.rs:11:20 | LL | const LEN: usize = ONE - TWO; | ^^^^^^^^^ evaluation of `LEN` failed here note: erroneous constant encountered - --> $DIR/const-len-underflow-separate-spans.rs:15:17 + --> $DIR/const-len-underflow-separate-spans.rs:16:17 | LL | let a: [i8; LEN] = unimplemented!(); | ^^^ diff --git a/tests/ui/consts/const-len-underflow-separate-spans.old.stderr b/tests/ui/consts/const-len-underflow-separate-spans.old.stderr index ef46522f7f5d4..d895803b706c3 100644 --- a/tests/ui/consts/const-len-underflow-separate-spans.old.stderr +++ b/tests/ui/consts/const-len-underflow-separate-spans.old.stderr @@ -1,11 +1,11 @@ error[E0080]: attempt to compute `1_usize - 2_usize`, which would overflow - --> $DIR/const-len-underflow-separate-spans.rs:10:20 + --> $DIR/const-len-underflow-separate-spans.rs:11:20 | LL | const LEN: usize = ONE - TWO; | ^^^^^^^^^ evaluation of `LEN` failed here note: erroneous constant encountered - --> $DIR/const-len-underflow-separate-spans.rs:15:17 + --> $DIR/const-len-underflow-separate-spans.rs:16:17 | LL | let a: [i8; LEN] = unimplemented!(); | ^^^ diff --git a/tests/ui/consts/const-len-underflow-separate-spans.rs b/tests/ui/consts/const-len-underflow-separate-spans.rs index ee8c79dafa799..806acb1cc3f75 100644 --- a/tests/ui/consts/const-len-underflow-separate-spans.rs +++ b/tests/ui/consts/const-len-underflow-separate-spans.rs @@ -3,6 +3,7 @@ // overall context for what caused the evaluation. //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver const ONE: usize = 1; diff --git a/tests/ui/consts/const-try.rs b/tests/ui/consts/const-try.rs index b6dc00140f839..fb958f911c4af 100644 --- a/tests/ui/consts/const-try.rs +++ b/tests/ui/consts/const-try.rs @@ -1,5 +1,6 @@ //@ check-pass //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver // Demonstrates what's needed to make use of `?` in const contexts. diff --git a/tests/ui/consts/trait_alias.fail.stderr b/tests/ui/consts/trait_alias.fail.stderr index 62f5ab1a7d2cd..3a28de5a0ed14 100644 --- a/tests/ui/consts/trait_alias.fail.stderr +++ b/tests/ui/consts/trait_alias.fail.stderr @@ -1,5 +1,5 @@ error[E0277]: the trait bound `T: [const] Baz` is not satisfied - --> $DIR/trait_alias.rs:24:11 + --> $DIR/trait_alias.rs:25:11 | LL | x.baz(); | ^^^ diff --git a/tests/ui/consts/trait_alias.next_fail.stderr b/tests/ui/consts/trait_alias.next_fail.stderr index 62f5ab1a7d2cd..3a28de5a0ed14 100644 --- a/tests/ui/consts/trait_alias.next_fail.stderr +++ b/tests/ui/consts/trait_alias.next_fail.stderr @@ -1,5 +1,5 @@ error[E0277]: the trait bound `T: [const] Baz` is not satisfied - --> $DIR/trait_alias.rs:24:11 + --> $DIR/trait_alias.rs:25:11 | LL | x.baz(); | ^^^ diff --git a/tests/ui/consts/trait_alias.rs b/tests/ui/consts/trait_alias.rs index 7bda53ca08346..2d472cde242a9 100644 --- a/tests/ui/consts/trait_alias.rs +++ b/tests/ui/consts/trait_alias.rs @@ -1,5 +1,6 @@ #![feature(trait_alias, const_trait_impl)] //@ revisions: next_pass next_fail pass fail +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next_pass] compile-flags: -Znext-solver //@[next_fail] compile-flags: -Znext-solver //@[next_pass] check-pass diff --git a/tests/ui/coroutine/copy-fast-path-query-cycle.rs b/tests/ui/coroutine/copy-fast-path-query-cycle.rs index 644cba0d47af2..4522a129d8338 100644 --- a/tests/ui/coroutine/copy-fast-path-query-cycle.rs +++ b/tests/ui/coroutine/copy-fast-path-query-cycle.rs @@ -1,5 +1,6 @@ //@ edition: 2024 //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/coroutine/gen_block_is_fused_iter.rs b/tests/ui/coroutine/gen_block_is_fused_iter.rs index e4eab6195eecf..02cfcdf7a4ec6 100644 --- a/tests/ui/coroutine/gen_block_is_fused_iter.rs +++ b/tests/ui/coroutine/gen_block_is_fused_iter.rs @@ -1,4 +1,5 @@ //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@ edition: 2024 //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/coroutine/gen_block_is_iter.rs b/tests/ui/coroutine/gen_block_is_iter.rs index 032360fbee032..6524f41f23e76 100644 --- a/tests/ui/coroutine/gen_block_is_iter.rs +++ b/tests/ui/coroutine/gen_block_is_iter.rs @@ -1,4 +1,5 @@ //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@ edition: 2024 //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/coroutine/gen_block_iterate.rs b/tests/ui/coroutine/gen_block_iterate.rs index afeb56cc2f3f9..4a60600ff4dc6 100644 --- a/tests/ui/coroutine/gen_block_iterate.rs +++ b/tests/ui/coroutine/gen_block_iterate.rs @@ -1,4 +1,5 @@ //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@ edition: 2024 //@[next] compile-flags: -Znext-solver //@ run-pass diff --git a/tests/ui/error-codes/E0476.next.stderr b/tests/ui/error-codes/E0476.next.stderr index 454dbecc7d01f..8b2dcbcf54462 100644 --- a/tests/ui/error-codes/E0476.next.stderr +++ b/tests/ui/error-codes/E0476.next.stderr @@ -1,5 +1,5 @@ error[E0119]: conflicting implementations of trait `CoerceUnsized<&Wrapper<_>>` for type `&Wrapper<_>` - --> $DIR/E0476.rs:11:1 + --> $DIR/E0476.rs:12:1 | LL | impl<'a, 'b, T, S> CoerceUnsized<&'a Wrapper> for &'b Wrapper where S: Unsize {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -9,18 +9,18 @@ LL | impl<'a, 'b, T, S> CoerceUnsized<&'a Wrapper> for &'b Wrapper where S where 'b: 'a, T: Unsize, T: ?Sized, U: ?Sized; error[E0476]: lifetime of the source pointer does not outlive lifetime bound of the object type - --> $DIR/E0476.rs:11:1 + --> $DIR/E0476.rs:12:1 | LL | impl<'a, 'b, T, S> CoerceUnsized<&'a Wrapper> for &'b Wrapper where S: Unsize {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: object type is valid for the lifetime `'a` as defined here - --> $DIR/E0476.rs:11:6 + --> $DIR/E0476.rs:12:6 | LL | impl<'a, 'b, T, S> CoerceUnsized<&'a Wrapper> for &'b Wrapper where S: Unsize {} | ^^ note: source pointer is only valid for the lifetime `'b` as defined here - --> $DIR/E0476.rs:11:10 + --> $DIR/E0476.rs:12:10 | LL | impl<'a, 'b, T, S> CoerceUnsized<&'a Wrapper> for &'b Wrapper where S: Unsize {} | ^^ diff --git a/tests/ui/error-codes/E0476.old.stderr b/tests/ui/error-codes/E0476.old.stderr index 454dbecc7d01f..8b2dcbcf54462 100644 --- a/tests/ui/error-codes/E0476.old.stderr +++ b/tests/ui/error-codes/E0476.old.stderr @@ -1,5 +1,5 @@ error[E0119]: conflicting implementations of trait `CoerceUnsized<&Wrapper<_>>` for type `&Wrapper<_>` - --> $DIR/E0476.rs:11:1 + --> $DIR/E0476.rs:12:1 | LL | impl<'a, 'b, T, S> CoerceUnsized<&'a Wrapper> for &'b Wrapper where S: Unsize {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -9,18 +9,18 @@ LL | impl<'a, 'b, T, S> CoerceUnsized<&'a Wrapper> for &'b Wrapper where S where 'b: 'a, T: Unsize, T: ?Sized, U: ?Sized; error[E0476]: lifetime of the source pointer does not outlive lifetime bound of the object type - --> $DIR/E0476.rs:11:1 + --> $DIR/E0476.rs:12:1 | LL | impl<'a, 'b, T, S> CoerceUnsized<&'a Wrapper> for &'b Wrapper where S: Unsize {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: object type is valid for the lifetime `'a` as defined here - --> $DIR/E0476.rs:11:6 + --> $DIR/E0476.rs:12:6 | LL | impl<'a, 'b, T, S> CoerceUnsized<&'a Wrapper> for &'b Wrapper where S: Unsize {} | ^^ note: source pointer is only valid for the lifetime `'b` as defined here - --> $DIR/E0476.rs:11:10 + --> $DIR/E0476.rs:12:10 | LL | impl<'a, 'b, T, S> CoerceUnsized<&'a Wrapper> for &'b Wrapper where S: Unsize {} | ^^ diff --git a/tests/ui/error-codes/E0476.rs b/tests/ui/error-codes/E0476.rs index 03656d28b2b99..38854f0768d80 100644 --- a/tests/ui/error-codes/E0476.rs +++ b/tests/ui/error-codes/E0476.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver=coherence #![feature(coerce_unsized)] #![feature(unsize)] diff --git a/tests/ui/field_representing_types/incoherent-impl.next.stderr b/tests/ui/field_representing_types/incoherent-impl.next.stderr index 47f91e8dd2e9d..fc9f663ac076e 100644 --- a/tests/ui/field_representing_types/incoherent-impl.next.stderr +++ b/tests/ui/field_representing_types/incoherent-impl.next.stderr @@ -1,5 +1,5 @@ error[E0117]: only traits defined in the current crate can be implemented for types defined outside of the crate - --> $DIR/incoherent-impl.rs:22:1 + --> $DIR/incoherent-impl.rs:23:1 | LL | impl ForeignTrait for field_of!(Point, x) {} | ^^^^^^^^^^^^^^^^^^^^^^------------------- @@ -11,7 +11,7 @@ LL | impl ForeignTrait for field_of!(Point, x) {} = note: define and implement a trait or new type instead error[E0117]: only traits defined in the current crate can be implemented for types defined outside of the crate - --> $DIR/incoherent-impl.rs:25:1 + --> $DIR/incoherent-impl.rs:26:1 | LL | impl ForeignTrait for field_of!((usize, usize), 0) {} | ^^^^^^^^^^^^^^^^^^^^^^---------------------------- diff --git a/tests/ui/field_representing_types/incoherent-impl.old.stderr b/tests/ui/field_representing_types/incoherent-impl.old.stderr index 47f91e8dd2e9d..fc9f663ac076e 100644 --- a/tests/ui/field_representing_types/incoherent-impl.old.stderr +++ b/tests/ui/field_representing_types/incoherent-impl.old.stderr @@ -1,5 +1,5 @@ error[E0117]: only traits defined in the current crate can be implemented for types defined outside of the crate - --> $DIR/incoherent-impl.rs:22:1 + --> $DIR/incoherent-impl.rs:23:1 | LL | impl ForeignTrait for field_of!(Point, x) {} | ^^^^^^^^^^^^^^^^^^^^^^------------------- @@ -11,7 +11,7 @@ LL | impl ForeignTrait for field_of!(Point, x) {} = note: define and implement a trait or new type instead error[E0117]: only traits defined in the current crate can be implemented for types defined outside of the crate - --> $DIR/incoherent-impl.rs:25:1 + --> $DIR/incoherent-impl.rs:26:1 | LL | impl ForeignTrait for field_of!((usize, usize), 0) {} | ^^^^^^^^^^^^^^^^^^^^^^---------------------------- diff --git a/tests/ui/field_representing_types/incoherent-impl.rs b/tests/ui/field_representing_types/incoherent-impl.rs index 22db652359f69..8928e885432fe 100644 --- a/tests/ui/field_representing_types/incoherent-impl.rs +++ b/tests/ui/field_representing_types/incoherent-impl.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver //@ aux-build:extern-crate.rs #![expect(incomplete_features)] diff --git a/tests/ui/field_representing_types/invalid.next.stderr b/tests/ui/field_representing_types/invalid.next.stderr index 38b011ab6f84a..52872001b4dee 100644 --- a/tests/ui/field_representing_types/invalid.next.stderr +++ b/tests/ui/field_representing_types/invalid.next.stderr @@ -1,5 +1,5 @@ error: unexpected end of macro invocation - --> $DIR/invalid.rs:23:28 + --> $DIR/invalid.rs:24:28 | LL | let _: field_of!(Struct); | ^ missing tokens in macro arguments @@ -9,7 +9,7 @@ note: while trying to match `,` = note: this macro expects a container type and a field path, like `field_of!(Type, field)` or `field_of!(Enum, Variant.field)` error: unexpected end of macro invocation - --> $DIR/invalid.rs:24:29 + --> $DIR/invalid.rs:25:29 | LL | let _: field_of!(Struct,); | ^ missing tokens in macro arguments @@ -19,7 +19,7 @@ note: while trying to match meta-variable `$fields:expr` = note: this macro expects a container type and a field path, like `field_of!(Type, field)` or `field_of!(Enum, Variant.field)` error: no rules expected `extra` - --> $DIR/invalid.rs:25:37 + --> $DIR/invalid.rs:26:37 | LL | let _: field_of!(Struct, field, extra); | ^^^^^ no rules expected this token in macro call @@ -28,13 +28,13 @@ LL | let _: field_of!(Struct, field, extra); = note: this macro expects a container type and a field path, like `field_of!(Type, field)` or `field_of!(Enum, Variant.field)` error: offset_of expects dot-separated field and variant names - --> $DIR/invalid.rs:27:28 + --> $DIR/invalid.rs:28:28 | LL | let _: field_of!(Enum, Variant..field); | ^^^^^^^^^^^^^^ error: `field_of!` expects dot-separated field and variant names - --> $DIR/invalid.rs:27:12 + --> $DIR/invalid.rs:28:12 | LL | let _: field_of!(Enum, Variant..field); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -43,13 +43,13 @@ LL | let _: field_of!(Enum, Variant..field); | this macro call doesn't expand to a type error: offset_of expects dot-separated field and variant names - --> $DIR/invalid.rs:29:30 + --> $DIR/invalid.rs:30:30 | LL | let _: field_of!(Struct, [42]); | ^^^^ error: `field_of!` expects dot-separated field and variant names - --> $DIR/invalid.rs:29:12 + --> $DIR/invalid.rs:30:12 | LL | let _: field_of!(Struct, [42]); | ^^^^^^^^^^^^^^^^^^^^^^^ @@ -58,7 +58,7 @@ LL | let _: field_of!(Struct, [42]); | this macro call doesn't expand to a type error: `field_of!` only supports a single field or a variant with a field - --> $DIR/invalid.rs:31:30 + --> $DIR/invalid.rs:32:30 | LL | let _: field_of!(Struct, field1.field2.field3); | ------------------^^^^^^-^^^^^^-^^^^^^- diff --git a/tests/ui/field_representing_types/invalid.old.stderr b/tests/ui/field_representing_types/invalid.old.stderr index 38b011ab6f84a..52872001b4dee 100644 --- a/tests/ui/field_representing_types/invalid.old.stderr +++ b/tests/ui/field_representing_types/invalid.old.stderr @@ -1,5 +1,5 @@ error: unexpected end of macro invocation - --> $DIR/invalid.rs:23:28 + --> $DIR/invalid.rs:24:28 | LL | let _: field_of!(Struct); | ^ missing tokens in macro arguments @@ -9,7 +9,7 @@ note: while trying to match `,` = note: this macro expects a container type and a field path, like `field_of!(Type, field)` or `field_of!(Enum, Variant.field)` error: unexpected end of macro invocation - --> $DIR/invalid.rs:24:29 + --> $DIR/invalid.rs:25:29 | LL | let _: field_of!(Struct,); | ^ missing tokens in macro arguments @@ -19,7 +19,7 @@ note: while trying to match meta-variable `$fields:expr` = note: this macro expects a container type and a field path, like `field_of!(Type, field)` or `field_of!(Enum, Variant.field)` error: no rules expected `extra` - --> $DIR/invalid.rs:25:37 + --> $DIR/invalid.rs:26:37 | LL | let _: field_of!(Struct, field, extra); | ^^^^^ no rules expected this token in macro call @@ -28,13 +28,13 @@ LL | let _: field_of!(Struct, field, extra); = note: this macro expects a container type and a field path, like `field_of!(Type, field)` or `field_of!(Enum, Variant.field)` error: offset_of expects dot-separated field and variant names - --> $DIR/invalid.rs:27:28 + --> $DIR/invalid.rs:28:28 | LL | let _: field_of!(Enum, Variant..field); | ^^^^^^^^^^^^^^ error: `field_of!` expects dot-separated field and variant names - --> $DIR/invalid.rs:27:12 + --> $DIR/invalid.rs:28:12 | LL | let _: field_of!(Enum, Variant..field); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -43,13 +43,13 @@ LL | let _: field_of!(Enum, Variant..field); | this macro call doesn't expand to a type error: offset_of expects dot-separated field and variant names - --> $DIR/invalid.rs:29:30 + --> $DIR/invalid.rs:30:30 | LL | let _: field_of!(Struct, [42]); | ^^^^ error: `field_of!` expects dot-separated field and variant names - --> $DIR/invalid.rs:29:12 + --> $DIR/invalid.rs:30:12 | LL | let _: field_of!(Struct, [42]); | ^^^^^^^^^^^^^^^^^^^^^^^ @@ -58,7 +58,7 @@ LL | let _: field_of!(Struct, [42]); | this macro call doesn't expand to a type error: `field_of!` only supports a single field or a variant with a field - --> $DIR/invalid.rs:31:30 + --> $DIR/invalid.rs:32:30 | LL | let _: field_of!(Struct, field1.field2.field3); | ------------------^^^^^^-^^^^^^-^^^^^^- diff --git a/tests/ui/field_representing_types/invalid.rs b/tests/ui/field_representing_types/invalid.rs index d1fc217db7ddd..0d8c5d563401c 100644 --- a/tests/ui/field_representing_types/invalid.rs +++ b/tests/ui/field_representing_types/invalid.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver #![expect(incomplete_features)] #![feature(field_projections)] diff --git a/tests/ui/field_representing_types/invariant.next.stderr b/tests/ui/field_representing_types/invariant.next.stderr index c9e0b03040d85..147ecd0cb371a 100644 --- a/tests/ui/field_representing_types/invariant.next.stderr +++ b/tests/ui/field_representing_types/invariant.next.stderr @@ -1,5 +1,5 @@ error: lifetime may not live long enough - --> $DIR/invariant.rs:16:5 + --> $DIR/invariant.rs:17:5 | LL | fn assert_invariant<'a, 'b>(x: field_of!(Struct<'a>, field), y: field_of!(Struct<'b>, field)) { | -- -- lifetime `'b` defined here @@ -15,7 +15,7 @@ LL | consume(x, y); = help: see for more information about variance error: lifetime may not live long enough - --> $DIR/invariant.rs:16:5 + --> $DIR/invariant.rs:17:5 | LL | fn assert_invariant<'a, 'b>(x: field_of!(Struct<'a>, field), y: field_of!(Struct<'b>, field)) { | -- -- lifetime `'b` defined here @@ -31,7 +31,7 @@ LL | consume(x, y); = help: see for more information about variance error: one or more lifetime errors were found in this item - --> $DIR/invariant.rs:14:4 + --> $DIR/invariant.rs:15:4 | LL | fn assert_invariant<'a, 'b>(x: field_of!(Struct<'a>, field), y: field_of!(Struct<'b>, field)) { | ^^^^^^^^^^^^^^^^ diff --git a/tests/ui/field_representing_types/invariant.old.stderr b/tests/ui/field_representing_types/invariant.old.stderr index c9e0b03040d85..147ecd0cb371a 100644 --- a/tests/ui/field_representing_types/invariant.old.stderr +++ b/tests/ui/field_representing_types/invariant.old.stderr @@ -1,5 +1,5 @@ error: lifetime may not live long enough - --> $DIR/invariant.rs:16:5 + --> $DIR/invariant.rs:17:5 | LL | fn assert_invariant<'a, 'b>(x: field_of!(Struct<'a>, field), y: field_of!(Struct<'b>, field)) { | -- -- lifetime `'b` defined here @@ -15,7 +15,7 @@ LL | consume(x, y); = help: see for more information about variance error: lifetime may not live long enough - --> $DIR/invariant.rs:16:5 + --> $DIR/invariant.rs:17:5 | LL | fn assert_invariant<'a, 'b>(x: field_of!(Struct<'a>, field), y: field_of!(Struct<'b>, field)) { | -- -- lifetime `'b` defined here @@ -31,7 +31,7 @@ LL | consume(x, y); = help: see for more information about variance error: one or more lifetime errors were found in this item - --> $DIR/invariant.rs:14:4 + --> $DIR/invariant.rs:15:4 | LL | fn assert_invariant<'a, 'b>(x: field_of!(Struct<'a>, field), y: field_of!(Struct<'b>, field)) { | ^^^^^^^^^^^^^^^^ diff --git a/tests/ui/field_representing_types/invariant.rs b/tests/ui/field_representing_types/invariant.rs index b9b42b2f29105..98ff311da3e49 100644 --- a/tests/ui/field_representing_types/invariant.rs +++ b/tests/ui/field_representing_types/invariant.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver #![expect(incomplete_features)] #![feature(field_projections)] diff --git a/tests/ui/field_representing_types/non-struct.next.stderr b/tests/ui/field_representing_types/non-struct.next.stderr index f1ed0e392eafa..f831fc6c41a9a 100644 --- a/tests/ui/field_representing_types/non-struct.next.stderr +++ b/tests/ui/field_representing_types/non-struct.next.stderr @@ -1,23 +1,23 @@ error[E0277]: the trait bound `field_of!(MyUnion, field): Field` is not satisfied - --> $DIR/non-struct.rs:22:20 + --> $DIR/non-struct.rs:23:20 | LL | assert_field::(); | ^^^^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `Field` is not implemented for `field_of!(MyUnion, field)` | note: required by a bound in `assert_field` - --> $DIR/non-struct.rs:18:20 + --> $DIR/non-struct.rs:19:20 | LL | fn assert_field() {} | ^^^^^ required by this bound in `assert_field` error[E0277]: the trait bound `field_of!(MyEnum, A.a): Field` is not satisfied - --> $DIR/non-struct.rs:25:20 + --> $DIR/non-struct.rs:26:20 | LL | assert_field::(); | ^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `Field` is not implemented for `field_of!(MyEnum, A.a)` | note: required by a bound in `assert_field` - --> $DIR/non-struct.rs:18:20 + --> $DIR/non-struct.rs:19:20 | LL | fn assert_field() {} | ^^^^^ required by this bound in `assert_field` diff --git a/tests/ui/field_representing_types/non-struct.old.stderr b/tests/ui/field_representing_types/non-struct.old.stderr index f1ed0e392eafa..f831fc6c41a9a 100644 --- a/tests/ui/field_representing_types/non-struct.old.stderr +++ b/tests/ui/field_representing_types/non-struct.old.stderr @@ -1,23 +1,23 @@ error[E0277]: the trait bound `field_of!(MyUnion, field): Field` is not satisfied - --> $DIR/non-struct.rs:22:20 + --> $DIR/non-struct.rs:23:20 | LL | assert_field::(); | ^^^^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `Field` is not implemented for `field_of!(MyUnion, field)` | note: required by a bound in `assert_field` - --> $DIR/non-struct.rs:18:20 + --> $DIR/non-struct.rs:19:20 | LL | fn assert_field() {} | ^^^^^ required by this bound in `assert_field` error[E0277]: the trait bound `field_of!(MyEnum, A.a): Field` is not satisfied - --> $DIR/non-struct.rs:25:20 + --> $DIR/non-struct.rs:26:20 | LL | assert_field::(); | ^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `Field` is not implemented for `field_of!(MyEnum, A.a)` | note: required by a bound in `assert_field` - --> $DIR/non-struct.rs:18:20 + --> $DIR/non-struct.rs:19:20 | LL | fn assert_field() {} | ^^^^^ required by this bound in `assert_field` diff --git a/tests/ui/field_representing_types/non-struct.rs b/tests/ui/field_representing_types/non-struct.rs index e5787c3744bdb..2fa3a8125968b 100644 --- a/tests/ui/field_representing_types/non-struct.rs +++ b/tests/ui/field_representing_types/non-struct.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver #![expect(incomplete_features)] #![feature(field_projections)] diff --git a/tests/ui/field_representing_types/nonexistent.next.stderr b/tests/ui/field_representing_types/nonexistent.next.stderr index 9f18a667680cd..7fa9defa77517 100644 --- a/tests/ui/field_representing_types/nonexistent.next.stderr +++ b/tests/ui/field_representing_types/nonexistent.next.stderr @@ -1,5 +1,5 @@ error[E0573]: cannot find type `main` in this scope - --> $DIR/nonexistent.rs:43:22 + --> $DIR/nonexistent.rs:44:22 | LL | let _: field_of!(main, field); | ^^^^ not found in this scope @@ -7,115 +7,115 @@ LL | let _: field_of!(main, field); = note: a function named `main` exists in another namespace error[E0609]: no field `other` on type `Struct` - --> $DIR/nonexistent.rs:23:30 + --> $DIR/nonexistent.rs:24:30 | LL | let _: field_of!(Struct, other); | ^^^^^ error[E0609]: no field `0` on type `Struct` - --> $DIR/nonexistent.rs:24:30 + --> $DIR/nonexistent.rs:25:30 | LL | let _: field_of!(Struct, 0); | ^ error[E0609]: no field `other` on type `Union` - --> $DIR/nonexistent.rs:25:29 + --> $DIR/nonexistent.rs:26:29 | LL | let _: field_of!(Union, other); | ^^^^^ error[E0609]: no field `0` on type `Union` - --> $DIR/nonexistent.rs:26:29 + --> $DIR/nonexistent.rs:27:29 | LL | let _: field_of!(Union, 0); | ^ error[E0609]: no field `other` on type `Enum` - --> $DIR/nonexistent.rs:28:36 + --> $DIR/nonexistent.rs:29:36 | LL | let _: field_of!(Enum, Variant.other); | ^^^^^ error[E0609]: no field `0` on type `Enum` - --> $DIR/nonexistent.rs:29:36 + --> $DIR/nonexistent.rs:30:36 | LL | let _: field_of!(Enum, Variant.0); | ^ error[E0599]: no variant named `OtherVariant` found for enum `Enum` - --> $DIR/nonexistent.rs:31:28 + --> $DIR/nonexistent.rs:32:28 | LL | let _: field_of!(Enum, OtherVariant.field); | ^^^^^^^^^^^^ error[E0599]: no variant named `OtherVariant` found for enum `Enum` - --> $DIR/nonexistent.rs:32:28 + --> $DIR/nonexistent.rs:33:28 | LL | let _: field_of!(Enum, OtherVariant.0); | ^^^^^^^^^^^^ error[E0609]: no field `2` on type `((), ())` - --> $DIR/nonexistent.rs:33:32 + --> $DIR/nonexistent.rs:34:32 | LL | let _: field_of!(((), ()), 2); | ^ error[E0609]: no field `field` on type `((), ())` - --> $DIR/nonexistent.rs:34:32 + --> $DIR/nonexistent.rs:35:32 | LL | let _: field_of!(((), ()), field); | ^^^^^ error: type `i32` doesn't have fields - --> $DIR/nonexistent.rs:36:22 + --> $DIR/nonexistent.rs:37:22 | LL | let _: field_of!(i32, field); | ^^^ error: type `[Struct]` doesn't have fields - --> $DIR/nonexistent.rs:37:22 + --> $DIR/nonexistent.rs:38:22 | LL | let _: field_of!([Struct], field); | ^^^^^^^^ error: type `[Struct; 42]` is not yet supported in `field_of!` - --> $DIR/nonexistent.rs:38:22 + --> $DIR/nonexistent.rs:39:22 | LL | let _: field_of!([Struct; 42], field); | ^^^^^^^^^^^^ error: type `&'static Struct` doesn't have fields - --> $DIR/nonexistent.rs:39:22 + --> $DIR/nonexistent.rs:40:22 | LL | let _: field_of!(&'static Struct, field); | ^^^^^^^^^^^^^^^ error: type `*const Struct` doesn't have fields - --> $DIR/nonexistent.rs:40:22 + --> $DIR/nonexistent.rs:41:22 | LL | let _: field_of!(*const Struct, field); | ^^^^^^^^^^^^^ error: type `fn() -> Struct` doesn't have fields - --> $DIR/nonexistent.rs:41:22 + --> $DIR/nonexistent.rs:42:22 | LL | let _: field_of!(fn() -> Struct, field); | ^^^^^^^^^^^^^^ error: type `dyn Trait` doesn't have fields - --> $DIR/nonexistent.rs:42:22 + --> $DIR/nonexistent.rs:43:22 | LL | let _: field_of!(dyn Trait, field); | ^^^^^^^^^ error: cannot use `_` in this position - --> $DIR/nonexistent.rs:44:22 + --> $DIR/nonexistent.rs:45:22 | LL | let _: field_of!(_, field); | ^ error: type `T` doesn't have fields - --> $DIR/nonexistent.rs:48:22 + --> $DIR/nonexistent.rs:49:22 | LL | let _: field_of!(T, field); | ^ diff --git a/tests/ui/field_representing_types/nonexistent.old.stderr b/tests/ui/field_representing_types/nonexistent.old.stderr index 9f18a667680cd..7fa9defa77517 100644 --- a/tests/ui/field_representing_types/nonexistent.old.stderr +++ b/tests/ui/field_representing_types/nonexistent.old.stderr @@ -1,5 +1,5 @@ error[E0573]: cannot find type `main` in this scope - --> $DIR/nonexistent.rs:43:22 + --> $DIR/nonexistent.rs:44:22 | LL | let _: field_of!(main, field); | ^^^^ not found in this scope @@ -7,115 +7,115 @@ LL | let _: field_of!(main, field); = note: a function named `main` exists in another namespace error[E0609]: no field `other` on type `Struct` - --> $DIR/nonexistent.rs:23:30 + --> $DIR/nonexistent.rs:24:30 | LL | let _: field_of!(Struct, other); | ^^^^^ error[E0609]: no field `0` on type `Struct` - --> $DIR/nonexistent.rs:24:30 + --> $DIR/nonexistent.rs:25:30 | LL | let _: field_of!(Struct, 0); | ^ error[E0609]: no field `other` on type `Union` - --> $DIR/nonexistent.rs:25:29 + --> $DIR/nonexistent.rs:26:29 | LL | let _: field_of!(Union, other); | ^^^^^ error[E0609]: no field `0` on type `Union` - --> $DIR/nonexistent.rs:26:29 + --> $DIR/nonexistent.rs:27:29 | LL | let _: field_of!(Union, 0); | ^ error[E0609]: no field `other` on type `Enum` - --> $DIR/nonexistent.rs:28:36 + --> $DIR/nonexistent.rs:29:36 | LL | let _: field_of!(Enum, Variant.other); | ^^^^^ error[E0609]: no field `0` on type `Enum` - --> $DIR/nonexistent.rs:29:36 + --> $DIR/nonexistent.rs:30:36 | LL | let _: field_of!(Enum, Variant.0); | ^ error[E0599]: no variant named `OtherVariant` found for enum `Enum` - --> $DIR/nonexistent.rs:31:28 + --> $DIR/nonexistent.rs:32:28 | LL | let _: field_of!(Enum, OtherVariant.field); | ^^^^^^^^^^^^ error[E0599]: no variant named `OtherVariant` found for enum `Enum` - --> $DIR/nonexistent.rs:32:28 + --> $DIR/nonexistent.rs:33:28 | LL | let _: field_of!(Enum, OtherVariant.0); | ^^^^^^^^^^^^ error[E0609]: no field `2` on type `((), ())` - --> $DIR/nonexistent.rs:33:32 + --> $DIR/nonexistent.rs:34:32 | LL | let _: field_of!(((), ()), 2); | ^ error[E0609]: no field `field` on type `((), ())` - --> $DIR/nonexistent.rs:34:32 + --> $DIR/nonexistent.rs:35:32 | LL | let _: field_of!(((), ()), field); | ^^^^^ error: type `i32` doesn't have fields - --> $DIR/nonexistent.rs:36:22 + --> $DIR/nonexistent.rs:37:22 | LL | let _: field_of!(i32, field); | ^^^ error: type `[Struct]` doesn't have fields - --> $DIR/nonexistent.rs:37:22 + --> $DIR/nonexistent.rs:38:22 | LL | let _: field_of!([Struct], field); | ^^^^^^^^ error: type `[Struct; 42]` is not yet supported in `field_of!` - --> $DIR/nonexistent.rs:38:22 + --> $DIR/nonexistent.rs:39:22 | LL | let _: field_of!([Struct; 42], field); | ^^^^^^^^^^^^ error: type `&'static Struct` doesn't have fields - --> $DIR/nonexistent.rs:39:22 + --> $DIR/nonexistent.rs:40:22 | LL | let _: field_of!(&'static Struct, field); | ^^^^^^^^^^^^^^^ error: type `*const Struct` doesn't have fields - --> $DIR/nonexistent.rs:40:22 + --> $DIR/nonexistent.rs:41:22 | LL | let _: field_of!(*const Struct, field); | ^^^^^^^^^^^^^ error: type `fn() -> Struct` doesn't have fields - --> $DIR/nonexistent.rs:41:22 + --> $DIR/nonexistent.rs:42:22 | LL | let _: field_of!(fn() -> Struct, field); | ^^^^^^^^^^^^^^ error: type `dyn Trait` doesn't have fields - --> $DIR/nonexistent.rs:42:22 + --> $DIR/nonexistent.rs:43:22 | LL | let _: field_of!(dyn Trait, field); | ^^^^^^^^^ error: cannot use `_` in this position - --> $DIR/nonexistent.rs:44:22 + --> $DIR/nonexistent.rs:45:22 | LL | let _: field_of!(_, field); | ^ error: type `T` doesn't have fields - --> $DIR/nonexistent.rs:48:22 + --> $DIR/nonexistent.rs:49:22 | LL | let _: field_of!(T, field); | ^ diff --git a/tests/ui/field_representing_types/nonexistent.rs b/tests/ui/field_representing_types/nonexistent.rs index 252e2fb85c941..c5b49faf733ea 100644 --- a/tests/ui/field_representing_types/nonexistent.rs +++ b/tests/ui/field_representing_types/nonexistent.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver #![expect(incomplete_features)] #![feature(field_projections)] diff --git a/tests/ui/field_representing_types/not-field-if-packed.next.stderr b/tests/ui/field_representing_types/not-field-if-packed.next.stderr index 3944316baa8ea..aa12552474c82 100644 --- a/tests/ui/field_representing_types/not-field-if-packed.next.stderr +++ b/tests/ui/field_representing_types/not-field-if-packed.next.stderr @@ -1,11 +1,11 @@ error[E0277]: the trait bound `field_of!(MyStruct, 0): Field` is not satisfied - --> $DIR/not-field-if-packed.rs:15:20 + --> $DIR/not-field-if-packed.rs:16:20 | LL | assert_field::(); | ^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `Field` is not implemented for `field_of!(MyStruct, 0)` | note: required by a bound in `assert_field` - --> $DIR/not-field-if-packed.rs:11:20 + --> $DIR/not-field-if-packed.rs:12:20 | LL | fn assert_field() {} | ^^^^^ required by this bound in `assert_field` diff --git a/tests/ui/field_representing_types/not-field-if-packed.old.stderr b/tests/ui/field_representing_types/not-field-if-packed.old.stderr index 3944316baa8ea..aa12552474c82 100644 --- a/tests/ui/field_representing_types/not-field-if-packed.old.stderr +++ b/tests/ui/field_representing_types/not-field-if-packed.old.stderr @@ -1,11 +1,11 @@ error[E0277]: the trait bound `field_of!(MyStruct, 0): Field` is not satisfied - --> $DIR/not-field-if-packed.rs:15:20 + --> $DIR/not-field-if-packed.rs:16:20 | LL | assert_field::(); | ^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `Field` is not implemented for `field_of!(MyStruct, 0)` | note: required by a bound in `assert_field` - --> $DIR/not-field-if-packed.rs:11:20 + --> $DIR/not-field-if-packed.rs:12:20 | LL | fn assert_field() {} | ^^^^^ required by this bound in `assert_field` diff --git a/tests/ui/field_representing_types/not-field-if-packed.rs b/tests/ui/field_representing_types/not-field-if-packed.rs index 06524b17628d5..a1b6e41cd74c2 100644 --- a/tests/ui/field_representing_types/not-field-if-packed.rs +++ b/tests/ui/field_representing_types/not-field-if-packed.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver #![expect(incomplete_features)] #![feature(field_projections)] diff --git a/tests/ui/field_representing_types/not-field-if-unsized.next.stderr b/tests/ui/field_representing_types/not-field-if-unsized.next.stderr index e639d01dc176a..9a2cc84b6ac51 100644 --- a/tests/ui/field_representing_types/not-field-if-unsized.next.stderr +++ b/tests/ui/field_representing_types/not-field-if-unsized.next.stderr @@ -1,39 +1,39 @@ error[E0277]: the size for values of type `(dyn Trait + 'static)` cannot be known at compilation time - --> $DIR/not-field-if-unsized.rs:17:20 + --> $DIR/not-field-if-unsized.rs:18:20 | LL | assert_field::(); | ^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time | = help: within `field_of!(MyStruct, 0)`, the trait `Sized` is not implemented for `(dyn Trait + 'static)` note: required because it appears within the type `MyStruct` - --> $DIR/not-field-if-unsized.rs:10:28 + --> $DIR/not-field-if-unsized.rs:11:28 | LL | pub struct MyStruct(usize, dyn Trait); | ^^^^^^^^^ required by this field note: required because it appears within the type `field_of!(MyStruct, 0)` --> $SRC_DIR/core/src/field.rs:LL:COL note: required by a bound in `assert_field` - --> $DIR/not-field-if-unsized.rs:12:20 + --> $DIR/not-field-if-unsized.rs:13:20 | LL | fn assert_field() {} | ^^^^^ required by this bound in `assert_field` error[E0277]: the size for values of type `(dyn Trait + 'static)` cannot be known at compilation time - --> $DIR/not-field-if-unsized.rs:21:20 + --> $DIR/not-field-if-unsized.rs:22:20 | LL | assert_field::(); | ^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time | = help: within `field_of!(MyStruct, 1)`, the trait `Sized` is not implemented for `(dyn Trait + 'static)` note: required because it appears within the type `MyStruct` - --> $DIR/not-field-if-unsized.rs:10:28 + --> $DIR/not-field-if-unsized.rs:11:28 | LL | pub struct MyStruct(usize, dyn Trait); | ^^^^^^^^^ required by this field note: required because it appears within the type `field_of!(MyStruct, 1)` --> $SRC_DIR/core/src/field.rs:LL:COL note: required by a bound in `assert_field` - --> $DIR/not-field-if-unsized.rs:12:20 + --> $DIR/not-field-if-unsized.rs:13:20 | LL | fn assert_field() {} | ^^^^^ required by this bound in `assert_field` diff --git a/tests/ui/field_representing_types/not-field-if-unsized.old.stderr b/tests/ui/field_representing_types/not-field-if-unsized.old.stderr index 693f1353253bd..41b27584d0cda 100644 --- a/tests/ui/field_representing_types/not-field-if-unsized.old.stderr +++ b/tests/ui/field_representing_types/not-field-if-unsized.old.stderr @@ -1,23 +1,23 @@ error[E0277]: the trait bound `field_of!(MyStruct, 0): Field` is not satisfied - --> $DIR/not-field-if-unsized.rs:17:20 + --> $DIR/not-field-if-unsized.rs:18:20 | LL | ..._field::(); | ^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `Field` is not implemented for `field_of!(MyStruct, 0)` | note: required by a bound in `assert_field` - --> $DIR/not-field-if-unsized.rs:12:20 + --> $DIR/not-field-if-unsized.rs:13:20 | LL | fn assert_field() {} | ^^^^^ required by this bound in `assert_field` error[E0277]: the trait bound `field_of!(MyStruct, 1): Field` is not satisfied - --> $DIR/not-field-if-unsized.rs:21:20 + --> $DIR/not-field-if-unsized.rs:22:20 | LL | ..._field::(); | ^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `Field` is not implemented for `field_of!(MyStruct, 1)` | note: required by a bound in `assert_field` - --> $DIR/not-field-if-unsized.rs:12:20 + --> $DIR/not-field-if-unsized.rs:13:20 | LL | fn assert_field() {} | ^^^^^ required by this bound in `assert_field` diff --git a/tests/ui/field_representing_types/not-field-if-unsized.rs b/tests/ui/field_representing_types/not-field-if-unsized.rs index 82a3c385cb799..4675fd98a42fb 100644 --- a/tests/ui/field_representing_types/not-field-if-unsized.rs +++ b/tests/ui/field_representing_types/not-field-if-unsized.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver #![expect(incomplete_features)] #![feature(field_projections)] diff --git a/tests/ui/field_representing_types/offset.rs b/tests/ui/field_representing_types/offset.rs index 8c769de884d29..1275cc9f00270 100644 --- a/tests/ui/field_representing_types/offset.rs +++ b/tests/ui/field_representing_types/offset.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver //@ run-pass #![expect(incomplete_features)] diff --git a/tests/ui/field_representing_types/privacy.next.stderr b/tests/ui/field_representing_types/privacy.next.stderr index 237a2cbc55ff7..35a66d76c3d32 100644 --- a/tests/ui/field_representing_types/privacy.next.stderr +++ b/tests/ui/field_representing_types/privacy.next.stderr @@ -1,11 +1,11 @@ error[E0616]: field `a` of struct `foo::Struct` is private - --> $DIR/privacy.rs:28:30 + --> $DIR/privacy.rs:29:30 | LL | let _: field_of!(Struct, a); | ^ private field error[E0616]: field `a` of union `foo::Union` is private - --> $DIR/privacy.rs:30:29 + --> $DIR/privacy.rs:31:29 | LL | let _: field_of!(Union, a); | ^ private field diff --git a/tests/ui/field_representing_types/privacy.old.stderr b/tests/ui/field_representing_types/privacy.old.stderr index 237a2cbc55ff7..35a66d76c3d32 100644 --- a/tests/ui/field_representing_types/privacy.old.stderr +++ b/tests/ui/field_representing_types/privacy.old.stderr @@ -1,11 +1,11 @@ error[E0616]: field `a` of struct `foo::Struct` is private - --> $DIR/privacy.rs:28:30 + --> $DIR/privacy.rs:29:30 | LL | let _: field_of!(Struct, a); | ^ private field error[E0616]: field `a` of union `foo::Union` is private - --> $DIR/privacy.rs:30:29 + --> $DIR/privacy.rs:31:29 | LL | let _: field_of!(Union, a); | ^ private field diff --git a/tests/ui/field_representing_types/privacy.rs b/tests/ui/field_representing_types/privacy.rs index 7805ff6721a6e..9a036d1afa3aa 100644 --- a/tests/ui/field_representing_types/privacy.rs +++ b/tests/ui/field_representing_types/privacy.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver #![expect(incomplete_features)] #![feature(field_projections)] diff --git a/tests/ui/field_representing_types/projections.next.stderr b/tests/ui/field_representing_types/projections.next.stderr index bf3b41cc23a54..f5a462e3a8e65 100644 --- a/tests/ui/field_representing_types/projections.next.stderr +++ b/tests/ui/field_representing_types/projections.next.stderr @@ -1,29 +1,29 @@ error: could not resolve fields of `<::Assoc as Special>::Assoc` - --> $DIR/projections.rs:39:18 + --> $DIR/projections.rs:40:18 | LL | _: field_of!(<::Assoc as Special>::Assoc, field), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: could not resolve fields of `<::Assoc as Special>::Assoc` - --> $DIR/projections.rs:45:19 + --> $DIR/projections.rs:46:19 | LL | _x: field_of!(<::Assoc as Special>::Assoc, field), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: could not resolve fields of `::Assoc` - --> $DIR/projections.rs:24:22 + --> $DIR/projections.rs:25:22 | LL | let _: field_of!(::Assoc, field); | ^^^^^^^^^^^^^^^^^^^^^^^^ error: could not resolve fields of `<::Assoc as Special>::Assoc` - --> $DIR/projections.rs:51:22 + --> $DIR/projections.rs:52:22 | LL | let _: field_of!(<::Assoc as Special>::Assoc, field); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: could not resolve fields of `<::Assoc as Special>::Assoc` - --> $DIR/projections.rs:56:22 + --> $DIR/projections.rs:57:22 | LL | let _: field_of!(<::Assoc as Special>::Assoc, other); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/ui/field_representing_types/projections.old.stderr b/tests/ui/field_representing_types/projections.old.stderr index bf3b41cc23a54..f5a462e3a8e65 100644 --- a/tests/ui/field_representing_types/projections.old.stderr +++ b/tests/ui/field_representing_types/projections.old.stderr @@ -1,29 +1,29 @@ error: could not resolve fields of `<::Assoc as Special>::Assoc` - --> $DIR/projections.rs:39:18 + --> $DIR/projections.rs:40:18 | LL | _: field_of!(<::Assoc as Special>::Assoc, field), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: could not resolve fields of `<::Assoc as Special>::Assoc` - --> $DIR/projections.rs:45:19 + --> $DIR/projections.rs:46:19 | LL | _x: field_of!(<::Assoc as Special>::Assoc, field), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: could not resolve fields of `::Assoc` - --> $DIR/projections.rs:24:22 + --> $DIR/projections.rs:25:22 | LL | let _: field_of!(::Assoc, field); | ^^^^^^^^^^^^^^^^^^^^^^^^ error: could not resolve fields of `<::Assoc as Special>::Assoc` - --> $DIR/projections.rs:51:22 + --> $DIR/projections.rs:52:22 | LL | let _: field_of!(<::Assoc as Special>::Assoc, field); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: could not resolve fields of `<::Assoc as Special>::Assoc` - --> $DIR/projections.rs:56:22 + --> $DIR/projections.rs:57:22 | LL | let _: field_of!(<::Assoc as Special>::Assoc, other); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/ui/field_representing_types/projections.rs b/tests/ui/field_representing_types/projections.rs index 625f22e25e991..011e0df23571d 100644 --- a/tests/ui/field_representing_types/projections.rs +++ b/tests/ui/field_representing_types/projections.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver #![feature(field_projections, freeze)] #![expect(incomplete_features, dead_code)] diff --git a/tests/ui/field_representing_types/sized.next.stderr b/tests/ui/field_representing_types/sized.next.stderr index 254603f09b960..30f1b8e73be32 100644 --- a/tests/ui/field_representing_types/sized.next.stderr +++ b/tests/ui/field_representing_types/sized.next.stderr @@ -1,5 +1,5 @@ error[E0277]: the size for values of type `T` cannot be known at compilation time - --> $DIR/sized.rs:20:19 + --> $DIR/sized.rs:21:19 | LL | fn generic() { | - this type parameter needs to be `Sized` @@ -7,7 +7,7 @@ LL | impls_field::, count)>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time | note: required because it appears within the type `Generic` - --> $DIR/sized.rs:16:5 + --> $DIR/sized.rs:17:5 | LL | pub struct Generic { LL | count: usize, @@ -16,7 +16,7 @@ LL | last: T, note: required because it appears within the type `field_of!(Generic, count)` --> $SRC_DIR/core/src/field.rs:LL:COL note: required by a bound in `impls_field` - --> $DIR/sized.rs:38:19 + --> $DIR/sized.rs:39:19 | LL | fn impls_field() {} | ^^^^^ required by this bound in `impls_field` @@ -27,7 +27,7 @@ LL + fn generic() { | error[E0277]: the size for values of type `T` cannot be known at compilation time - --> $DIR/sized.rs:22:19 + --> $DIR/sized.rs:23:19 | LL | fn generic() { | - this type parameter needs to be `Sized` @@ -36,7 +36,7 @@ LL | impls_field::, last)>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time | note: required because it appears within the type `Generic` - --> $DIR/sized.rs:16:5 + --> $DIR/sized.rs:17:5 | LL | pub struct Generic { LL | count: usize, @@ -45,7 +45,7 @@ LL | last: T, note: required because it appears within the type `field_of!(Generic, last)` --> $SRC_DIR/core/src/field.rs:LL:COL note: required by a bound in `impls_field` - --> $DIR/sized.rs:38:19 + --> $DIR/sized.rs:39:19 | LL | fn impls_field() {} | ^^^^^ required by this bound in `impls_field` @@ -56,14 +56,14 @@ LL + fn generic() { | error[E0277]: the size for values of type `(dyn Debug + 'static)` cannot be known at compilation time - --> $DIR/sized.rs:32:19 + --> $DIR/sized.rs:33:19 | LL | impls_field::(); | ^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time | = help: within `field_of!(MyDST, count)`, the trait `Sized` is not implemented for `(dyn Debug + 'static)` note: required because it appears within the type `MyDST` - --> $DIR/sized.rs:11:5 + --> $DIR/sized.rs:12:5 | LL | pub struct MyDST { LL | count: usize, @@ -72,20 +72,20 @@ LL | last: dyn Debug, note: required because it appears within the type `field_of!(MyDST, count)` --> $SRC_DIR/core/src/field.rs:LL:COL note: required by a bound in `impls_field` - --> $DIR/sized.rs:38:19 + --> $DIR/sized.rs:39:19 | LL | fn impls_field() {} | ^^^^^ required by this bound in `impls_field` error[E0277]: the size for values of type `(dyn Debug + 'static)` cannot be known at compilation time - --> $DIR/sized.rs:34:19 + --> $DIR/sized.rs:35:19 | LL | impls_field::(); | ^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time | = help: within `field_of!(MyDST, last)`, the trait `Sized` is not implemented for `(dyn Debug + 'static)` note: required because it appears within the type `MyDST` - --> $DIR/sized.rs:11:5 + --> $DIR/sized.rs:12:5 | LL | pub struct MyDST { LL | count: usize, @@ -94,7 +94,7 @@ LL | last: dyn Debug, note: required because it appears within the type `field_of!(MyDST, last)` --> $SRC_DIR/core/src/field.rs:LL:COL note: required by a bound in `impls_field` - --> $DIR/sized.rs:38:19 + --> $DIR/sized.rs:39:19 | LL | fn impls_field() {} | ^^^^^ required by this bound in `impls_field` diff --git a/tests/ui/field_representing_types/sized.old.stderr b/tests/ui/field_representing_types/sized.old.stderr index f86bf6ddd53ee..2f624e33952d1 100644 --- a/tests/ui/field_representing_types/sized.old.stderr +++ b/tests/ui/field_representing_types/sized.old.stderr @@ -1,47 +1,47 @@ error[E0277]: the trait bound `field_of!(Generic, count): Field` is not satisfied - --> $DIR/sized.rs:20:19 + --> $DIR/sized.rs:21:19 | LL | ...::, count)>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `Field` is not implemented for `field_of!(Generic, count)` | note: required by a bound in `impls_field` - --> $DIR/sized.rs:38:19 + --> $DIR/sized.rs:39:19 | LL | fn impls_field() {} | ^^^^^ required by this bound in `impls_field` error[E0277]: the trait bound `field_of!(Generic, last): Field` is not satisfied - --> $DIR/sized.rs:22:19 + --> $DIR/sized.rs:23:19 | LL | ...d::, last)>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `Field` is not implemented for `field_of!(Generic, last)` | note: required by a bound in `impls_field` - --> $DIR/sized.rs:38:19 + --> $DIR/sized.rs:39:19 | LL | fn impls_field() {} | ^^^^^ required by this bound in `impls_field` error[E0277]: the trait bound `field_of!(MyDST, count): Field` is not satisfied - --> $DIR/sized.rs:32:19 + --> $DIR/sized.rs:33:19 | LL | ...field::(); | ^^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `Field` is not implemented for `field_of!(MyDST, count)` | note: required by a bound in `impls_field` - --> $DIR/sized.rs:38:19 + --> $DIR/sized.rs:39:19 | LL | fn impls_field() {} | ^^^^^ required by this bound in `impls_field` error[E0277]: the trait bound `field_of!(MyDST, last): Field` is not satisfied - --> $DIR/sized.rs:34:19 + --> $DIR/sized.rs:35:19 | LL | impls_field::(); | ^^^^^^^^^^^^^^^^^^^^^^ the nightly-only, unstable trait `Field` is not implemented for `field_of!(MyDST, last)` | note: required by a bound in `impls_field` - --> $DIR/sized.rs:38:19 + --> $DIR/sized.rs:39:19 | LL | fn impls_field() {} | ^^^^^ required by this bound in `impls_field` diff --git a/tests/ui/field_representing_types/sized.rs b/tests/ui/field_representing_types/sized.rs index 658dd5f24a131..866526b8d65f0 100644 --- a/tests/ui/field_representing_types/sized.rs +++ b/tests/ui/field_representing_types/sized.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver #![expect(incomplete_features)] #![feature(field_projections)] diff --git a/tests/ui/field_representing_types/traits.rs b/tests/ui/field_representing_types/traits.rs index bc31376e60ea2..266643188508d 100644 --- a/tests/ui/field_representing_types/traits.rs +++ b/tests/ui/field_representing_types/traits.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver //@ run-pass #![feature(field_projections, freeze, unsafe_unpin)] diff --git a/tests/ui/field_representing_types/weird-impls.next.stderr b/tests/ui/field_representing_types/weird-impls.next.stderr index 71c6d5d296347..5e3382f3ad53b 100644 --- a/tests/ui/field_representing_types/weird-impls.next.stderr +++ b/tests/ui/field_representing_types/weird-impls.next.stderr @@ -1,23 +1,23 @@ error[E0120]: the `Drop` trait may only be implemented for local structs, enums, and unions - --> $DIR/weird-impls.rs:10:15 + --> $DIR/weird-impls.rs:11:15 | LL | impl Drop for field_of!(MyStruct, 0) { | ^^^^^^^^^^^^^^^^^^^^^^ must be a struct, enum, or union in the current crate error[E0321]: cross-crate traits with a default impl, like `Send`, can only be implemented for a struct/enum type defined in the current crate - --> $DIR/weird-impls.rs:15:1 + --> $DIR/weird-impls.rs:16:1 | LL | unsafe impl Send for field_of!(MyStruct, 0) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't implement cross-crate trait for type in another crate error[E0322]: explicit impls for the `Field` trait are not permitted - --> $DIR/weird-impls.rs:21:1 + --> $DIR/weird-impls.rs:22:1 | LL | unsafe impl Field for field_of!(MyStruct2, 0) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl of `Field` not allowed error[E0322]: explicit impls for the `Field` trait are not permitted - --> $DIR/weird-impls.rs:30:1 + --> $DIR/weird-impls.rs:31:1 | LL | unsafe impl Field for MyField { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl of `Field` not allowed diff --git a/tests/ui/field_representing_types/weird-impls.old.stderr b/tests/ui/field_representing_types/weird-impls.old.stderr index 71c6d5d296347..5e3382f3ad53b 100644 --- a/tests/ui/field_representing_types/weird-impls.old.stderr +++ b/tests/ui/field_representing_types/weird-impls.old.stderr @@ -1,23 +1,23 @@ error[E0120]: the `Drop` trait may only be implemented for local structs, enums, and unions - --> $DIR/weird-impls.rs:10:15 + --> $DIR/weird-impls.rs:11:15 | LL | impl Drop for field_of!(MyStruct, 0) { | ^^^^^^^^^^^^^^^^^^^^^^ must be a struct, enum, or union in the current crate error[E0321]: cross-crate traits with a default impl, like `Send`, can only be implemented for a struct/enum type defined in the current crate - --> $DIR/weird-impls.rs:15:1 + --> $DIR/weird-impls.rs:16:1 | LL | unsafe impl Send for field_of!(MyStruct, 0) {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't implement cross-crate trait for type in another crate error[E0322]: explicit impls for the `Field` trait are not permitted - --> $DIR/weird-impls.rs:21:1 + --> $DIR/weird-impls.rs:22:1 | LL | unsafe impl Field for field_of!(MyStruct2, 0) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl of `Field` not allowed error[E0322]: explicit impls for the `Field` trait are not permitted - --> $DIR/weird-impls.rs:30:1 + --> $DIR/weird-impls.rs:31:1 | LL | unsafe impl Field for MyField { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl of `Field` not allowed diff --git a/tests/ui/field_representing_types/weird-impls.rs b/tests/ui/field_representing_types/weird-impls.rs index d61c0c7a6a056..764ef50a251a0 100644 --- a/tests/ui/field_representing_types/weird-impls.rs +++ b/tests/ui/field_representing_types/weird-impls.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver #![expect(incomplete_features)] #![feature(field_projections)] diff --git a/tests/ui/float/f32-into-f32.next-solver.fixed b/tests/ui/float/f32-into-f32.next-solver.fixed index 6bc04ff757eef..2b6153135940c 100644 --- a/tests/ui/float/f32-into-f32.next-solver.fixed +++ b/tests/ui/float/f32-into-f32.next-solver.fixed @@ -1,4 +1,5 @@ //@ revisions: old-solver next-solver +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next-solver] compile-flags: -Znext-solver //@ run-pass //@ run-rustfix diff --git a/tests/ui/float/f32-into-f32.next-solver.stderr b/tests/ui/float/f32-into-f32.next-solver.stderr index 1384f73f09689..b1f227511cfc6 100644 --- a/tests/ui/float/f32-into-f32.next-solver.stderr +++ b/tests/ui/float/f32-into-f32.next-solver.stderr @@ -1,5 +1,5 @@ warning: falling back to `f32` as the trait bound `f32: From` is not satisfied - --> $DIR/f32-into-f32.rs:9:9 + --> $DIR/f32-into-f32.rs:10:9 | LL | foo(1.0); | ^^^ help: explicitly specify the type as `f32`: `1.0_f32` @@ -9,7 +9,7 @@ LL | foo(1.0); = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default warning: falling back to `f32` as the trait bound `f32: From` is not satisfied - --> $DIR/f32-into-f32.rs:12:11 + --> $DIR/f32-into-f32.rs:13:11 | LL | foo(-(2.5)); | ^^^ help: explicitly specify the type as `f32`: `2.5_f32` @@ -18,7 +18,7 @@ LL | foo(-(2.5)); = note: for more information, see issue #154024 warning: falling back to `f32` as the trait bound `f32: From` is not satisfied - --> $DIR/f32-into-f32.rs:15:9 + --> $DIR/f32-into-f32.rs:16:9 | LL | foo(1e5); | ^^^ help: explicitly specify the type as `f32`: `1e5_f32` @@ -27,7 +27,7 @@ LL | foo(1e5); = note: for more information, see issue #154024 warning: falling back to `f32` as the trait bound `f32: From` is not satisfied - --> $DIR/f32-into-f32.rs:18:9 + --> $DIR/f32-into-f32.rs:19:9 | LL | foo(0.); | ^^ help: explicitly specify the type as `f32`: `0_f32` @@ -36,7 +36,7 @@ LL | foo(0.); = note: for more information, see issue #154024 warning: falling back to `f32` as the trait bound `f32: From` is not satisfied - --> $DIR/f32-into-f32.rs:22:14 + --> $DIR/f32-into-f32.rs:23:14 | LL | let x = -4.0; | ^^^ help: explicitly specify the type as `f32`: `4.0_f32` diff --git a/tests/ui/float/f32-into-f32.old-solver.fixed b/tests/ui/float/f32-into-f32.old-solver.fixed index 6bc04ff757eef..2b6153135940c 100644 --- a/tests/ui/float/f32-into-f32.old-solver.fixed +++ b/tests/ui/float/f32-into-f32.old-solver.fixed @@ -1,4 +1,5 @@ //@ revisions: old-solver next-solver +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next-solver] compile-flags: -Znext-solver //@ run-pass //@ run-rustfix diff --git a/tests/ui/float/f32-into-f32.old-solver.stderr b/tests/ui/float/f32-into-f32.old-solver.stderr index 1384f73f09689..b1f227511cfc6 100644 --- a/tests/ui/float/f32-into-f32.old-solver.stderr +++ b/tests/ui/float/f32-into-f32.old-solver.stderr @@ -1,5 +1,5 @@ warning: falling back to `f32` as the trait bound `f32: From` is not satisfied - --> $DIR/f32-into-f32.rs:9:9 + --> $DIR/f32-into-f32.rs:10:9 | LL | foo(1.0); | ^^^ help: explicitly specify the type as `f32`: `1.0_f32` @@ -9,7 +9,7 @@ LL | foo(1.0); = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default warning: falling back to `f32` as the trait bound `f32: From` is not satisfied - --> $DIR/f32-into-f32.rs:12:11 + --> $DIR/f32-into-f32.rs:13:11 | LL | foo(-(2.5)); | ^^^ help: explicitly specify the type as `f32`: `2.5_f32` @@ -18,7 +18,7 @@ LL | foo(-(2.5)); = note: for more information, see issue #154024 warning: falling back to `f32` as the trait bound `f32: From` is not satisfied - --> $DIR/f32-into-f32.rs:15:9 + --> $DIR/f32-into-f32.rs:16:9 | LL | foo(1e5); | ^^^ help: explicitly specify the type as `f32`: `1e5_f32` @@ -27,7 +27,7 @@ LL | foo(1e5); = note: for more information, see issue #154024 warning: falling back to `f32` as the trait bound `f32: From` is not satisfied - --> $DIR/f32-into-f32.rs:18:9 + --> $DIR/f32-into-f32.rs:19:9 | LL | foo(0.); | ^^ help: explicitly specify the type as `f32`: `0_f32` @@ -36,7 +36,7 @@ LL | foo(0.); = note: for more information, see issue #154024 warning: falling back to `f32` as the trait bound `f32: From` is not satisfied - --> $DIR/f32-into-f32.rs:22:14 + --> $DIR/f32-into-f32.rs:23:14 | LL | let x = -4.0; | ^^^ help: explicitly specify the type as `f32`: `4.0_f32` diff --git a/tests/ui/float/f32-into-f32.rs b/tests/ui/float/f32-into-f32.rs index 3dbdd20bd3098..1c40088906e1c 100644 --- a/tests/ui/float/f32-into-f32.rs +++ b/tests/ui/float/f32-into-f32.rs @@ -1,4 +1,5 @@ //@ revisions: old-solver next-solver +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next-solver] compile-flags: -Znext-solver //@ run-pass //@ run-rustfix diff --git a/tests/ui/generic-associated-types/rigid-hr-projection-issue-93340.rs b/tests/ui/generic-associated-types/rigid-hr-projection-issue-93340.rs index b55ca845cd3f2..f0ac923b494b3 100644 --- a/tests/ui/generic-associated-types/rigid-hr-projection-issue-93340.rs +++ b/tests/ui/generic-associated-types/rigid-hr-projection-issue-93340.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/higher-ranked/builtin-closure-like-bounds.rs b/tests/ui/higher-ranked/builtin-closure-like-bounds.rs index c177ee6fb3a66..4950957f42fec 100644 --- a/tests/ui/higher-ranked/builtin-closure-like-bounds.rs +++ b/tests/ui/higher-ranked/builtin-closure-like-bounds.rs @@ -1,5 +1,6 @@ //@ edition:2024 //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/higher-ranked/closure-bound-codegen-ice.rs b/tests/ui/higher-ranked/closure-bound-codegen-ice.rs index 4d7ae12d7a742..0dc839637d24d 100644 --- a/tests/ui/higher-ranked/closure-bound-codegen-ice.rs +++ b/tests/ui/higher-ranked/closure-bound-codegen-ice.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ build-pass diff --git a/tests/ui/higher-ranked/leak-check/constraint-from-nested-projection.next.stderr b/tests/ui/higher-ranked/leak-check/constraint-from-nested-projection.next.stderr index bf3e6943f0d5a..bd73cf9f48046 100644 --- a/tests/ui/higher-ranked/leak-check/constraint-from-nested-projection.next.stderr +++ b/tests/ui/higher-ranked/leak-check/constraint-from-nested-projection.next.stderr @@ -1,18 +1,18 @@ error[E0283]: type annotations needed - --> $DIR/constraint-from-nested-projection.rs:31:5 + --> $DIR/constraint-from-nested-projection.rs:32:5 | LL | pick::<(), _>(); | ^^^^^^^^^^^^^ cannot infer type of the type parameter `U` declared on the function `pick` | note: multiple `impl`s satisfying `(): Pick<_>` found - --> $DIR/constraint-from-nested-projection.rs:25:1 + --> $DIR/constraint-from-nested-projection.rs:26:1 | LL | impl RequiresProject<'a>> Pick for T {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ LL | impl Pick for T {} | ^^^^^^^^^^^^^^^^^^^^^^^ note: required by a bound in `pick` - --> $DIR/constraint-from-nested-projection.rs:28:12 + --> $DIR/constraint-from-nested-projection.rs:29:12 | LL | fn pick, U>() {} | ^^^^^^^ required by this bound in `pick` diff --git a/tests/ui/higher-ranked/leak-check/constraint-from-nested-projection.rs b/tests/ui/higher-ranked/leak-check/constraint-from-nested-projection.rs index fda0fa7efa57c..dd7ea263bce04 100644 --- a/tests/ui/higher-ranked/leak-check/constraint-from-nested-projection.rs +++ b/tests/ui/higher-ranked/leak-check/constraint-from-nested-projection.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@[old] check-pass diff --git a/tests/ui/higher-ranked/leak-check/leak-check-in-selection-1.rs b/tests/ui/higher-ranked/leak-check/leak-check-in-selection-1.rs index 46a0dccb441ef..487860468eaae 100644 --- a/tests/ui/higher-ranked/leak-check/leak-check-in-selection-1.rs +++ b/tests/ui/higher-ranked/leak-check/leak-check-in-selection-1.rs @@ -1,5 +1,6 @@ //@ run-pass //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![allow(coherence_leak_check)] diff --git a/tests/ui/higher-ranked/leak-check/leak-check-in-selection-4-hr-nested.rs b/tests/ui/higher-ranked/leak-check/leak-check-in-selection-4-hr-nested.rs index 8d87bdd064a06..aad2ee21b9514 100644 --- a/tests/ui/higher-ranked/leak-check/leak-check-in-selection-4-hr-nested.rs +++ b/tests/ui/higher-ranked/leak-check/leak-check-in-selection-4-hr-nested.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/higher-ranked/leak-check/leak-check-in-selection-5-ambig.rs b/tests/ui/higher-ranked/leak-check/leak-check-in-selection-5-ambig.rs index 9a44fd2e64a3e..612b87b392c40 100644 --- a/tests/ui/higher-ranked/leak-check/leak-check-in-selection-5-ambig.rs +++ b/tests/ui/higher-ranked/leak-check/leak-check-in-selection-5-ambig.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/higher-ranked/trait-bounds/issue-100689.rs b/tests/ui/higher-ranked/trait-bounds/issue-100689.rs index 6bfad56b93d29..8dfb8d2aaca91 100644 --- a/tests/ui/higher-ranked/trait-bounds/issue-100689.rs +++ b/tests/ui/higher-ranked/trait-bounds/issue-100689.rs @@ -1,5 +1,6 @@ //@ check-pass //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver struct Foo<'a> { diff --git a/tests/ui/higher-ranked/trait-bounds/issue-102899.rs b/tests/ui/higher-ranked/trait-bounds/issue-102899.rs index 77d4d0179b1ba..d726dbf6b0d73 100644 --- a/tests/ui/higher-ranked/trait-bounds/issue-102899.rs +++ b/tests/ui/higher-ranked/trait-bounds/issue-102899.rs @@ -1,5 +1,6 @@ //@ check-pass //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver pub trait BufferTrait<'buffer> { diff --git a/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.next.stderr b/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.next.stderr index dd8375c8b9409..cd1f2aa14acee 100644 --- a/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.next.stderr +++ b/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.next.stderr @@ -1,5 +1,5 @@ error[E0282]: type annotations needed for `>::Out<_>` - --> $DIR/norm-before-method-resolution-opaque-type.rs:25:9 + --> $DIR/norm-before-method-resolution-opaque-type.rs:26:9 | LL | let x = *x; | ^ diff --git a/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.old.stderr b/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.old.stderr index d8b94fd4f7d1b..cc4087c028e08 100644 --- a/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.old.stderr +++ b/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.old.stderr @@ -1,5 +1,5 @@ error[E0507]: cannot move out of `*x` which is behind a shared reference - --> $DIR/norm-before-method-resolution-opaque-type.rs:25:13 + --> $DIR/norm-before-method-resolution-opaque-type.rs:26:13 | LL | let x = *x; | ^^ move occurs because `*x` has type `>::Out`, which does not implement the `Copy` trait diff --git a/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.rs b/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.rs index 55e99171ea633..9735683c4c774 100644 --- a/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.rs +++ b/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver // In the next solver, the opaque was previously defined by using the where-bound when checking diff --git a/tests/ui/impl-trait/auto-trait-selection-freeze.next.stderr b/tests/ui/impl-trait/auto-trait-selection-freeze.next.stderr index d52cd6833c342..4f08d635cabdc 100644 --- a/tests/ui/impl-trait/auto-trait-selection-freeze.next.stderr +++ b/tests/ui/impl-trait/auto-trait-selection-freeze.next.stderr @@ -1,5 +1,5 @@ error[E0282]: type annotations needed - --> $DIR/auto-trait-selection-freeze.rs:19:16 + --> $DIR/auto-trait-selection-freeze.rs:20:16 | LL | if false { is_trait(foo()) } else { Default::default() } | ^^^^^^^^ cannot infer type of the type parameter `T` declared on the function `is_trait` diff --git a/tests/ui/impl-trait/auto-trait-selection-freeze.old.stderr b/tests/ui/impl-trait/auto-trait-selection-freeze.old.stderr index b6c6e74f26052..3baff54885b6e 100644 --- a/tests/ui/impl-trait/auto-trait-selection-freeze.old.stderr +++ b/tests/ui/impl-trait/auto-trait-selection-freeze.old.stderr @@ -1,5 +1,5 @@ error[E0283]: type annotations needed - --> $DIR/auto-trait-selection-freeze.rs:19:16 + --> $DIR/auto-trait-selection-freeze.rs:20:16 | LL | if false { is_trait(foo()) } else { Default::default() } | ^^^^^^^^ ----- type must be known at this point @@ -7,14 +7,14 @@ LL | if false { is_trait(foo()) } else { Default::default() } | cannot infer type of the type parameter `U` declared on the function `is_trait` | note: multiple `impl`s satisfying `impl Sized: Trait<_>` found - --> $DIR/auto-trait-selection-freeze.rs:16:1 + --> $DIR/auto-trait-selection-freeze.rs:17:1 | LL | impl Trait for T {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ LL | impl Trait for T {} | ^^^^^^^^^^^^^^^^^^^^^^^^ note: required by a bound in `is_trait` - --> $DIR/auto-trait-selection-freeze.rs:11:16 + --> $DIR/auto-trait-selection-freeze.rs:12:16 | LL | fn is_trait, U: Default>(_: T) -> U { | ^^^^^^^^ required by this bound in `is_trait` diff --git a/tests/ui/impl-trait/auto-trait-selection-freeze.rs b/tests/ui/impl-trait/auto-trait-selection-freeze.rs index 7306a1c41f746..16cafbc2bc545 100644 --- a/tests/ui/impl-trait/auto-trait-selection-freeze.rs +++ b/tests/ui/impl-trait/auto-trait-selection-freeze.rs @@ -2,6 +2,7 @@ //! selection in a code path that succeeds. //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(freeze)] diff --git a/tests/ui/impl-trait/auto-trait-selection.next.stderr b/tests/ui/impl-trait/auto-trait-selection.next.stderr index ec65bdc48a089..dbad5680781ec 100644 --- a/tests/ui/impl-trait/auto-trait-selection.next.stderr +++ b/tests/ui/impl-trait/auto-trait-selection.next.stderr @@ -1,5 +1,5 @@ error[E0282]: type annotations needed - --> $DIR/auto-trait-selection.rs:15:16 + --> $DIR/auto-trait-selection.rs:16:16 | LL | if false { is_trait(foo()) } else { Default::default() } | ^^^^^^^^ cannot infer type of the type parameter `T` declared on the function `is_trait` diff --git a/tests/ui/impl-trait/auto-trait-selection.old.stderr b/tests/ui/impl-trait/auto-trait-selection.old.stderr index 8e44100177154..a660ee7a5d892 100644 --- a/tests/ui/impl-trait/auto-trait-selection.old.stderr +++ b/tests/ui/impl-trait/auto-trait-selection.old.stderr @@ -1,5 +1,5 @@ error[E0283]: type annotations needed - --> $DIR/auto-trait-selection.rs:15:16 + --> $DIR/auto-trait-selection.rs:16:16 | LL | if false { is_trait(foo()) } else { Default::default() } | ^^^^^^^^ ----- type must be known at this point @@ -7,14 +7,14 @@ LL | if false { is_trait(foo()) } else { Default::default() } | cannot infer type of the type parameter `U` declared on the function `is_trait` | note: multiple `impl`s satisfying `impl Sized: Trait<_>` found - --> $DIR/auto-trait-selection.rs:12:1 + --> $DIR/auto-trait-selection.rs:13:1 | LL | impl Trait for T {} | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ LL | impl Trait for T {} | ^^^^^^^^^^^^^^^^^^^^^^^^ note: required by a bound in `is_trait` - --> $DIR/auto-trait-selection.rs:7:16 + --> $DIR/auto-trait-selection.rs:8:16 | LL | fn is_trait, U: Default>(_: T) -> U { | ^^^^^^^^ required by this bound in `is_trait` diff --git a/tests/ui/impl-trait/auto-trait-selection.rs b/tests/ui/impl-trait/auto-trait-selection.rs index ee5612459c257..c921d31f7f622 100644 --- a/tests/ui/impl-trait/auto-trait-selection.rs +++ b/tests/ui/impl-trait/auto-trait-selection.rs @@ -2,6 +2,7 @@ //! selection in a code path that succeeds. //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver fn is_trait, U: Default>(_: T) -> U { diff --git a/tests/ui/impl-trait/call_method_ambiguous.rs b/tests/ui/impl-trait/call_method_ambiguous.rs index 021d6c22f79dd..f49c993f8e4cd 100644 --- a/tests/ui/impl-trait/call_method_ambiguous.rs +++ b/tests/ui/impl-trait/call_method_ambiguous.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ run-pass diff --git a/tests/ui/impl-trait/call_method_on_inherent_impl.rs b/tests/ui/impl-trait/call_method_on_inherent_impl.rs index 1dd38bc671730..60426fb956408 100644 --- a/tests/ui/impl-trait/call_method_on_inherent_impl.rs +++ b/tests/ui/impl-trait/call_method_on_inherent_impl.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/impl-trait/call_method_on_inherent_impl_on_rigid_type.current.stderr b/tests/ui/impl-trait/call_method_on_inherent_impl_on_rigid_type.current.stderr index 6fdf47fba73e0..3822bb5c9729e 100644 --- a/tests/ui/impl-trait/call_method_on_inherent_impl_on_rigid_type.current.stderr +++ b/tests/ui/impl-trait/call_method_on_inherent_impl_on_rigid_type.current.stderr @@ -1,12 +1,12 @@ error[E0599]: no method named `my_debug` found for reference `&impl Debug` in the current scope - --> $DIR/call_method_on_inherent_impl_on_rigid_type.rs:16:11 + --> $DIR/call_method_on_inherent_impl_on_rigid_type.rs:17:11 | LL | x.my_debug(); | ^^^^^^^^ method not found in `&impl Debug` | = help: items from traits can only be used if the trait is implemented and in scope note: `MyDebug` defines an item `my_debug`, perhaps you need to implement it - --> $DIR/call_method_on_inherent_impl_on_rigid_type.rs:5:1 + --> $DIR/call_method_on_inherent_impl_on_rigid_type.rs:6:1 | LL | trait MyDebug { | ^^^^^^^^^^^^^ diff --git a/tests/ui/impl-trait/call_method_on_inherent_impl_on_rigid_type.next.stderr b/tests/ui/impl-trait/call_method_on_inherent_impl_on_rigid_type.next.stderr index 8e8a307917265..4ff8117bcc12c 100644 --- a/tests/ui/impl-trait/call_method_on_inherent_impl_on_rigid_type.next.stderr +++ b/tests/ui/impl-trait/call_method_on_inherent_impl_on_rigid_type.next.stderr @@ -1,5 +1,5 @@ error[E0599]: no method named `my_debug` found for reference `&_` in the current scope - --> $DIR/call_method_on_inherent_impl_on_rigid_type.rs:16:11 + --> $DIR/call_method_on_inherent_impl_on_rigid_type.rs:17:11 | LL | x.my_debug(); | ^^^^^^^^ method not found in `&_` diff --git a/tests/ui/impl-trait/call_method_on_inherent_impl_on_rigid_type.rs b/tests/ui/impl-trait/call_method_on_inherent_impl_on_rigid_type.rs index 4f09bd15dcd5f..847cb6e678dff 100644 --- a/tests/ui/impl-trait/call_method_on_inherent_impl_on_rigid_type.rs +++ b/tests/ui/impl-trait/call_method_on_inherent_impl_on_rigid_type.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ edition: 2015 diff --git a/tests/ui/impl-trait/call_method_on_inherent_impl_ref-err.current.stderr b/tests/ui/impl-trait/call_method_on_inherent_impl_ref-err.current.stderr index 71acbd1497d93..f77c44118966b 100644 --- a/tests/ui/impl-trait/call_method_on_inherent_impl_ref-err.current.stderr +++ b/tests/ui/impl-trait/call_method_on_inherent_impl_ref-err.current.stderr @@ -1,5 +1,5 @@ error[E0599]: no method named `my_debug` found for opaque type `impl Debug` in the current scope - --> $DIR/call_method_on_inherent_impl_ref-err.rs:18:11 + --> $DIR/call_method_on_inherent_impl_ref-err.rs:19:11 | LL | fn my_debug(&self); | -------- the method is available for `&impl Debug` here @@ -9,7 +9,7 @@ LL | x.my_debug(); | = help: items from traits can only be used if the trait is implemented and in scope note: `MyDebug` defines an item `my_debug`, perhaps you need to implement it - --> $DIR/call_method_on_inherent_impl_ref-err.rs:4:1 + --> $DIR/call_method_on_inherent_impl_ref-err.rs:5:1 | LL | trait MyDebug { | ^^^^^^^^^^^^^ diff --git a/tests/ui/impl-trait/call_method_on_inherent_impl_ref-err.next.stderr b/tests/ui/impl-trait/call_method_on_inherent_impl_ref-err.next.stderr index 523505e980221..71c588cd3a62f 100644 --- a/tests/ui/impl-trait/call_method_on_inherent_impl_ref-err.next.stderr +++ b/tests/ui/impl-trait/call_method_on_inherent_impl_ref-err.next.stderr @@ -1,5 +1,5 @@ error[E0599]: no method named `my_debug` found for type `_` in the current scope - --> $DIR/call_method_on_inherent_impl_ref-err.rs:18:11 + --> $DIR/call_method_on_inherent_impl_ref-err.rs:19:11 | LL | fn my_debug(&self); | -------- the method is available for `&_` here @@ -9,7 +9,7 @@ LL | x.my_debug(); | = help: items from traits can only be used if the trait is implemented and in scope note: `MyDebug` defines an item `my_debug`, perhaps you need to implement it - --> $DIR/call_method_on_inherent_impl_ref-err.rs:4:1 + --> $DIR/call_method_on_inherent_impl_ref-err.rs:5:1 | LL | trait MyDebug { | ^^^^^^^^^^^^^ diff --git a/tests/ui/impl-trait/call_method_on_inherent_impl_ref-err.rs b/tests/ui/impl-trait/call_method_on_inherent_impl_ref-err.rs index 0ed09bc76a41e..46c281d10e765 100644 --- a/tests/ui/impl-trait/call_method_on_inherent_impl_ref-err.rs +++ b/tests/ui/impl-trait/call_method_on_inherent_impl_ref-err.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver trait MyDebug { diff --git a/tests/ui/impl-trait/call_method_on_inherent_impl_ref-ok.rs b/tests/ui/impl-trait/call_method_on_inherent_impl_ref-ok.rs index 40739d6a0ce4b..073f5916754d7 100644 --- a/tests/ui/impl-trait/call_method_on_inherent_impl_ref-ok.rs +++ b/tests/ui/impl-trait/call_method_on_inherent_impl_ref-ok.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/impl-trait/failed-to-resolve-instance-ice-105488.old.stderr b/tests/ui/impl-trait/failed-to-resolve-instance-ice-105488.old.stderr index 23ee36358e63b..1a6e455ce9dd8 100644 --- a/tests/ui/impl-trait/failed-to-resolve-instance-ice-105488.old.stderr +++ b/tests/ui/impl-trait/failed-to-resolve-instance-ice-105488.old.stderr @@ -2,7 +2,7 @@ error[E0275]: overflow evaluating the requirement `fn() -> impl MyFnOnce {my_fn_ | = help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`failed_to_resolve_instance_ice_105488`) note: required for `WrapFnOnce impl MyFnOnce {my_fn_1}>` to implement `MyFnOnce` - --> $DIR/failed-to-resolve-instance-ice-105488.rs:18:37 + --> $DIR/failed-to-resolve-instance-ice-105488.rs:19:37 | LL | impl D, D: MyFnOnce> MyFnOnce for WrapFnOnce { | -------- ^^^^^^^^ ^^^^^^^^^^^^^ diff --git a/tests/ui/impl-trait/failed-to-resolve-instance-ice-105488.rs b/tests/ui/impl-trait/failed-to-resolve-instance-ice-105488.rs index b2e134176a37a..72ac1be91c8ac 100644 --- a/tests/ui/impl-trait/failed-to-resolve-instance-ice-105488.rs +++ b/tests/ui/impl-trait/failed-to-resolve-instance-ice-105488.rs @@ -1,11 +1,12 @@ //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ build-fail // ICE failed to resolve instance for impl MyFnOnce ... // issue: rust-lang/rust#105488 -//[old]~^^^^^^ ERROR overflow evaluating the requirement `fn() -> impl MyFnOnce -//[next]~^^^^^^^ ERROR: overflow evaluating the requirement ` impl MyFnOnce {my_fn_2} as MyFnOnce>::Output == _` [E0275] +//[old]~^^^^^^^ ERROR overflow evaluating the requirement `fn() -> impl MyFnOnce +//[next]~^^^^^^^^ ERROR: overflow evaluating the requirement ` impl MyFnOnce {my_fn_2} as MyFnOnce>::Output == _` [E0275] pub trait MyFnOnce { type Output; diff --git a/tests/ui/impl-trait/hidden-type-is-opaque-2.default.stderr b/tests/ui/impl-trait/hidden-type-is-opaque-2.default.stderr index dca0a7b0a1a9f..2f41e63accafe 100644 --- a/tests/ui/impl-trait/hidden-type-is-opaque-2.default.stderr +++ b/tests/ui/impl-trait/hidden-type-is-opaque-2.default.stderr @@ -1,5 +1,5 @@ error[E0282]: type annotations needed - --> $DIR/hidden-type-is-opaque-2.rs:10:17 + --> $DIR/hidden-type-is-opaque-2.rs:11:17 | LL | Thunk::new(|mut cont| { | ^^^^^^^^ @@ -13,7 +13,7 @@ LL | Thunk::new(|mut cont: /* Type */| { | ++++++++++++ error[E0282]: type annotations needed - --> $DIR/hidden-type-is-opaque-2.rs:21:17 + --> $DIR/hidden-type-is-opaque-2.rs:22:17 | LL | Thunk::new(|mut cont| { | ^^^^^^^^ diff --git a/tests/ui/impl-trait/hidden-type-is-opaque-2.next.stderr b/tests/ui/impl-trait/hidden-type-is-opaque-2.next.stderr index dca0a7b0a1a9f..2f41e63accafe 100644 --- a/tests/ui/impl-trait/hidden-type-is-opaque-2.next.stderr +++ b/tests/ui/impl-trait/hidden-type-is-opaque-2.next.stderr @@ -1,5 +1,5 @@ error[E0282]: type annotations needed - --> $DIR/hidden-type-is-opaque-2.rs:10:17 + --> $DIR/hidden-type-is-opaque-2.rs:11:17 | LL | Thunk::new(|mut cont| { | ^^^^^^^^ @@ -13,7 +13,7 @@ LL | Thunk::new(|mut cont: /* Type */| { | ++++++++++++ error[E0282]: type annotations needed - --> $DIR/hidden-type-is-opaque-2.rs:21:17 + --> $DIR/hidden-type-is-opaque-2.rs:22:17 | LL | Thunk::new(|mut cont| { | ^^^^^^^^ diff --git a/tests/ui/impl-trait/hidden-type-is-opaque-2.rs b/tests/ui/impl-trait/hidden-type-is-opaque-2.rs index 7725a04c35847..110ae28a12b09 100644 --- a/tests/ui/impl-trait/hidden-type-is-opaque-2.rs +++ b/tests/ui/impl-trait/hidden-type-is-opaque-2.rs @@ -2,6 +2,7 @@ // into function arguments via the function's generic parameters // FIXME(oli-obk): make `expected_inputs_for_expected_output` support this //@ revisions: default next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(type_alias_impl_trait)] diff --git a/tests/ui/impl-trait/method/broken-deref-chain.current.stderr b/tests/ui/impl-trait/method/broken-deref-chain.current.stderr index 726f076b183bd..742352d40fad6 100644 --- a/tests/ui/impl-trait/method/broken-deref-chain.current.stderr +++ b/tests/ui/impl-trait/method/broken-deref-chain.current.stderr @@ -1,5 +1,5 @@ error[E0308]: mismatched types - --> $DIR/broken-deref-chain.rs:41:30 + --> $DIR/broken-deref-chain.rs:42:30 | LL | fn trait_method() -> impl Trait { | ---------- the found opaque type diff --git a/tests/ui/impl-trait/method/broken-deref-chain.rs b/tests/ui/impl-trait/method/broken-deref-chain.rs index 8b45e044f4332..7ca98f5bbfb5f 100644 --- a/tests/ui/impl-trait/method/broken-deref-chain.rs +++ b/tests/ui/impl-trait/method/broken-deref-chain.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@[next] check-pass diff --git a/tests/ui/impl-trait/method/method-resolution.rs b/tests/ui/impl-trait/method/method-resolution.rs index 60fbacd86462b..96ab58d2e1cb2 100644 --- a/tests/ui/impl-trait/method/method-resolution.rs +++ b/tests/ui/impl-trait/method/method-resolution.rs @@ -2,6 +2,7 @@ //! constrain `foo`'s RPIT to `u32`. //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/impl-trait/method/method-resolution2.next.stderr b/tests/ui/impl-trait/method/method-resolution2.next.stderr index 223430e1658b4..3ca95a836e435 100644 --- a/tests/ui/impl-trait/method/method-resolution2.next.stderr +++ b/tests/ui/impl-trait/method/method-resolution2.next.stderr @@ -1,16 +1,16 @@ error[E0034]: multiple applicable items in scope - --> $DIR/method-resolution2.rs:25:11 + --> $DIR/method-resolution2.rs:26:11 | LL | x.bar(); | ^^^ multiple `bar` found | note: candidate #1 is defined in an impl for the type `Bar` - --> $DIR/method-resolution2.rs:19:5 + --> $DIR/method-resolution2.rs:20:5 | LL | fn bar(self) {} | ^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `Bar` - --> $DIR/method-resolution2.rs:15:5 + --> $DIR/method-resolution2.rs:16:5 | LL | fn bar(self) {} | ^^^^^^^^^^^^ diff --git a/tests/ui/impl-trait/method/method-resolution2.rs b/tests/ui/impl-trait/method/method-resolution2.rs index 88d4f3d9896c7..15aada8237a7b 100644 --- a/tests/ui/impl-trait/method/method-resolution2.rs +++ b/tests/ui/impl-trait/method/method-resolution2.rs @@ -2,6 +2,7 @@ //! `i32` is the only type that satisfies the RPIT's trait bounds. //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@[current] check-pass diff --git a/tests/ui/impl-trait/method/method-resolution3.current.stderr b/tests/ui/impl-trait/method/method-resolution3.current.stderr index 87dd862ef8f4f..5a51252011890 100644 --- a/tests/ui/impl-trait/method/method-resolution3.current.stderr +++ b/tests/ui/impl-trait/method/method-resolution3.current.stderr @@ -1,16 +1,16 @@ error[E0034]: multiple applicable items in scope - --> $DIR/method-resolution3.rs:21:11 + --> $DIR/method-resolution3.rs:22:11 | LL | x.bar(); | ^^^ multiple `bar` found | note: candidate #1 is defined in an impl for the type `Bar` - --> $DIR/method-resolution3.rs:15:5 + --> $DIR/method-resolution3.rs:16:5 | LL | fn bar(self) {} | ^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `Bar` - --> $DIR/method-resolution3.rs:11:5 + --> $DIR/method-resolution3.rs:12:5 | LL | fn bar(self) {} | ^^^^^^^^^^^^ diff --git a/tests/ui/impl-trait/method/method-resolution3.next.stderr b/tests/ui/impl-trait/method/method-resolution3.next.stderr index 87dd862ef8f4f..5a51252011890 100644 --- a/tests/ui/impl-trait/method/method-resolution3.next.stderr +++ b/tests/ui/impl-trait/method/method-resolution3.next.stderr @@ -1,16 +1,16 @@ error[E0034]: multiple applicable items in scope - --> $DIR/method-resolution3.rs:21:11 + --> $DIR/method-resolution3.rs:22:11 | LL | x.bar(); | ^^^ multiple `bar` found | note: candidate #1 is defined in an impl for the type `Bar` - --> $DIR/method-resolution3.rs:15:5 + --> $DIR/method-resolution3.rs:16:5 | LL | fn bar(self) {} | ^^^^^^^^^^^^ note: candidate #2 is defined in an impl for the type `Bar` - --> $DIR/method-resolution3.rs:11:5 + --> $DIR/method-resolution3.rs:12:5 | LL | fn bar(self) {} | ^^^^^^^^^^^^ diff --git a/tests/ui/impl-trait/method/method-resolution3.rs b/tests/ui/impl-trait/method/method-resolution3.rs index 8c47ef4fc75c7..7e2713cd01243 100644 --- a/tests/ui/impl-trait/method/method-resolution3.rs +++ b/tests/ui/impl-trait/method/method-resolution3.rs @@ -3,6 +3,7 @@ //! out with ambiguity. //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver struct Bar(T); diff --git a/tests/ui/impl-trait/method/method-resolution4.rs b/tests/ui/impl-trait/method/method-resolution4.rs index f90a9309cdab8..7815977242b24 100644 --- a/tests/ui/impl-trait/method/method-resolution4.rs +++ b/tests/ui/impl-trait/method/method-resolution4.rs @@ -5,6 +5,7 @@ //! `std::iter::Empty`. //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/impl-trait/method/method-resolution5-deref-no-constrain.current.stderr b/tests/ui/impl-trait/method/method-resolution5-deref-no-constrain.current.stderr index 08578de426ade..3257f28428cc3 100644 --- a/tests/ui/impl-trait/method/method-resolution5-deref-no-constrain.current.stderr +++ b/tests/ui/impl-trait/method/method-resolution5-deref-no-constrain.current.stderr @@ -1,5 +1,5 @@ error[E0308]: mismatched types - --> $DIR/method-resolution5-deref-no-constrain.rs:20:5 + --> $DIR/method-resolution5-deref-no-constrain.rs:21:5 | LL | fn via_deref() -> impl Deref { | --- expected `&Foo` because of return type diff --git a/tests/ui/impl-trait/method/method-resolution5-deref-no-constrain.rs b/tests/ui/impl-trait/method/method-resolution5-deref-no-constrain.rs index 2c41f62b9fda5..c93ce5c652a7b 100644 --- a/tests/ui/impl-trait/method/method-resolution5-deref-no-constrain.rs +++ b/tests/ui/impl-trait/method/method-resolution5-deref-no-constrain.rs @@ -3,6 +3,7 @@ //! the opaque to `&Foo`. //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@[next] check-pass diff --git a/tests/ui/impl-trait/method/method-resolution5-deref.rs b/tests/ui/impl-trait/method/method-resolution5-deref.rs index 6133a8efe244d..76e0556f6b4e0 100644 --- a/tests/ui/impl-trait/method/method-resolution5-deref.rs +++ b/tests/ui/impl-trait/method/method-resolution5-deref.rs @@ -3,6 +3,7 @@ //! applying it for the `impl Deref`. //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/impl-trait/method/would-constrain-opaque.current.stderr b/tests/ui/impl-trait/method/would-constrain-opaque.current.stderr index 44597b7313c52..e29297ceea024 100644 --- a/tests/ui/impl-trait/method/would-constrain-opaque.current.stderr +++ b/tests/ui/impl-trait/method/would-constrain-opaque.current.stderr @@ -1,25 +1,25 @@ error[E0599]: no method named `method` found for reference `&impl Sized` in the current scope - --> $DIR/would-constrain-opaque.rs:29:11 + --> $DIR/would-constrain-opaque.rs:30:11 | LL | x.method(); | ^^^^^^ method not found in `&impl Sized` | = help: items from traits can only be used if the trait is implemented and in scope note: `Trait` defines an item `method`, perhaps you need to implement it - --> $DIR/would-constrain-opaque.rs:16:1 + --> $DIR/would-constrain-opaque.rs:17:1 | LL | trait Trait: Sized { | ^^^^^^^^^^^^^^^^^^ error[E0599]: no method named `method` found for reference `&impl Sized` in the current scope - --> $DIR/would-constrain-opaque.rs:31:11 + --> $DIR/would-constrain-opaque.rs:32:11 | LL | x.method(); | ^^^^^^ method not found in `&impl Sized` | = help: items from traits can only be used if the trait is implemented and in scope note: `Trait` defines an item `method`, perhaps you need to implement it - --> $DIR/would-constrain-opaque.rs:16:1 + --> $DIR/would-constrain-opaque.rs:17:1 | LL | trait Trait: Sized { | ^^^^^^^^^^^^^^^^^^ diff --git a/tests/ui/impl-trait/method/would-constrain-opaque.next.stderr b/tests/ui/impl-trait/method/would-constrain-opaque.next.stderr index 3af5833639280..c20b4f2268071 100644 --- a/tests/ui/impl-trait/method/would-constrain-opaque.next.stderr +++ b/tests/ui/impl-trait/method/would-constrain-opaque.next.stderr @@ -1,5 +1,5 @@ error[E0599]: no method named `method` found for reference `&_` in the current scope - --> $DIR/would-constrain-opaque.rs:29:11 + --> $DIR/would-constrain-opaque.rs:30:11 | LL | x.method(); | ^^^^^^ method not found in `&_` @@ -11,7 +11,7 @@ LL + use crate::Trait; | error[E0599]: no method named `method` found for reference `&_` in the current scope - --> $DIR/would-constrain-opaque.rs:31:11 + --> $DIR/would-constrain-opaque.rs:32:11 | LL | x.method(); | ^^^^^^ method not found in `&_` diff --git a/tests/ui/impl-trait/method/would-constrain-opaque.rs b/tests/ui/impl-trait/method/would-constrain-opaque.rs index 380dbf3648aa1..1c7489ad08acd 100644 --- a/tests/ui/impl-trait/method/would-constrain-opaque.rs +++ b/tests/ui/impl-trait/method/would-constrain-opaque.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ edition: 2015 diff --git a/tests/ui/impl-trait/recursive-bound-eval.rs b/tests/ui/impl-trait/recursive-bound-eval.rs index 058b12e5651e3..d844fc07b042a 100644 --- a/tests/ui/impl-trait/recursive-bound-eval.rs +++ b/tests/ui/impl-trait/recursive-bound-eval.rs @@ -2,6 +2,7 @@ //! an RPIT. //@ revisions: next current +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/impl-trait/rpit/const_check_false_cycle.rs b/tests/ui/impl-trait/rpit/const_check_false_cycle.rs index d4ea0e3b14785..cad665e9618c7 100644 --- a/tests/ui/impl-trait/rpit/const_check_false_cycle.rs +++ b/tests/ui/impl-trait/rpit/const_check_false_cycle.rs @@ -3,6 +3,7 @@ //! the information is readily available. //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/impl-trait/rpit/dyn-in-nested-rpit.rs b/tests/ui/impl-trait/rpit/dyn-in-nested-rpit.rs index 195e11754226d..a040f51abd3a9 100644 --- a/tests/ui/impl-trait/rpit/dyn-in-nested-rpit.rs +++ b/tests/ui/impl-trait/rpit/dyn-in-nested-rpit.rs @@ -1,6 +1,7 @@ //! Regression test for . //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/impl-trait/rpit/precise-capture-155151.current.stderr b/tests/ui/impl-trait/rpit/precise-capture-155151.current.stderr index 39efb77067e77..97adb366ba76a 100644 --- a/tests/ui/impl-trait/rpit/precise-capture-155151.current.stderr +++ b/tests/ui/impl-trait/rpit/precise-capture-155151.current.stderr @@ -1,5 +1,5 @@ error[E0381]: used binding `x` isn't initialized - --> $DIR/precise-capture-155151.rs:19:22 + --> $DIR/precise-capture-155151.rs:20:22 | LL | let Foo { x } = foo; | - binding declared here but left uninitialized diff --git a/tests/ui/impl-trait/rpit/precise-capture-155151.rs b/tests/ui/impl-trait/rpit/precise-capture-155151.rs index b01f1098c6c2d..1edc54d16a15d 100644 --- a/tests/ui/impl-trait/rpit/precise-capture-155151.rs +++ b/tests/ui/impl-trait/rpit/precise-capture-155151.rs @@ -1,5 +1,6 @@ #![crate_type = "rlib"] //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ edition: 2021 //@[current] known-bug: #155151 //@[current] check-fail diff --git a/tests/ui/impl-trait/unsized_coercion.rs b/tests/ui/impl-trait/unsized_coercion.rs index f77f2198be0ef..f19fc87bafd42 100644 --- a/tests/ui/impl-trait/unsized_coercion.rs +++ b/tests/ui/impl-trait/unsized_coercion.rs @@ -2,6 +2,7 @@ //! constraining their hidden type to a trait object. //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/impl-trait/unsized_coercion2.old.stderr b/tests/ui/impl-trait/unsized_coercion2.old.stderr index a89d40f1130c1..262a977d69375 100644 --- a/tests/ui/impl-trait/unsized_coercion2.old.stderr +++ b/tests/ui/impl-trait/unsized_coercion2.old.stderr @@ -1,5 +1,5 @@ error[E0277]: the size for values of type `impl Trait + ?Sized` cannot be known at compilation time - --> $DIR/unsized_coercion2.rs:15:33 + --> $DIR/unsized_coercion2.rs:16:33 | LL | let y: Box = x; | ^ doesn't have a size known at compile-time diff --git a/tests/ui/impl-trait/unsized_coercion2.rs b/tests/ui/impl-trait/unsized_coercion2.rs index 7368d47dbe2c0..f953dec6e3b63 100644 --- a/tests/ui/impl-trait/unsized_coercion2.rs +++ b/tests/ui/impl-trait/unsized_coercion2.rs @@ -2,6 +2,7 @@ //! constraining their hidden type to a trait object. //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@[next] check-pass diff --git a/tests/ui/impl-trait/unsized_coercion3.next.stderr b/tests/ui/impl-trait/unsized_coercion3.next.stderr index d254524f5d85c..2d5323475664a 100644 --- a/tests/ui/impl-trait/unsized_coercion3.next.stderr +++ b/tests/ui/impl-trait/unsized_coercion3.next.stderr @@ -1,23 +1,23 @@ error[E0277]: the trait bound `dyn Send: Trait` is not satisfied - --> $DIR/unsized_coercion3.rs:11:15 + --> $DIR/unsized_coercion3.rs:12:15 | LL | fn hello() -> Box { | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Trait` is not implemented for `dyn Send` | help: the trait `Trait` is implemented for `u32` - --> $DIR/unsized_coercion3.rs:9:1 + --> $DIR/unsized_coercion3.rs:10:1 | LL | impl Trait for u32 {} | ^^^^^^^^^^^^^^^^^^ error[E0277]: the trait bound `dyn Send: Trait` is not satisfied - --> $DIR/unsized_coercion3.rs:14:17 + --> $DIR/unsized_coercion3.rs:15:17 | LL | let x = hello(); | ^^^^^^^ the trait `Trait` is not implemented for `dyn Send` | help: the trait `Trait` is implemented for `u32` - --> $DIR/unsized_coercion3.rs:9:1 + --> $DIR/unsized_coercion3.rs:10:1 | LL | impl Trait for u32 {} | ^^^^^^^^^^^^^^^^^^ diff --git a/tests/ui/impl-trait/unsized_coercion3.old.stderr b/tests/ui/impl-trait/unsized_coercion3.old.stderr index 3bb9f9c209510..b8c5705c44181 100644 --- a/tests/ui/impl-trait/unsized_coercion3.old.stderr +++ b/tests/ui/impl-trait/unsized_coercion3.old.stderr @@ -1,5 +1,5 @@ error[E0277]: the size for values of type `impl Trait + ?Sized` cannot be known at compilation time - --> $DIR/unsized_coercion3.rs:16:32 + --> $DIR/unsized_coercion3.rs:17:32 | LL | let y: Box = x; | ^ doesn't have a size known at compile-time diff --git a/tests/ui/impl-trait/unsized_coercion3.rs b/tests/ui/impl-trait/unsized_coercion3.rs index 021d43dac6402..7b775f10cc06e 100644 --- a/tests/ui/impl-trait/unsized_coercion3.rs +++ b/tests/ui/impl-trait/unsized_coercion3.rs @@ -2,6 +2,7 @@ //! constraining their hidden type to a trait object. //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver trait Trait {} diff --git a/tests/ui/impl-trait/unsized_coercion4.rs b/tests/ui/impl-trait/unsized_coercion4.rs index 1c4d5462ceeb2..6c9a525fb53aa 100644 --- a/tests/ui/impl-trait/unsized_coercion4.rs +++ b/tests/ui/impl-trait/unsized_coercion4.rs @@ -2,6 +2,7 @@ //! constraining their hidden type to a trait object. //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@check-pass diff --git a/tests/ui/impl-trait/unsized_coercion5.old.stderr b/tests/ui/impl-trait/unsized_coercion5.old.stderr index 72aa92ef6b9c8..ad510848035b3 100644 --- a/tests/ui/impl-trait/unsized_coercion5.old.stderr +++ b/tests/ui/impl-trait/unsized_coercion5.old.stderr @@ -1,5 +1,5 @@ error[E0277]: the size for values of type `impl Trait + ?Sized` cannot be known at compilation time - --> $DIR/unsized_coercion5.rs:15:32 + --> $DIR/unsized_coercion5.rs:16:32 | LL | let y: Box = x as Box; | ^ doesn't have a size known at compile-time diff --git a/tests/ui/impl-trait/unsized_coercion5.rs b/tests/ui/impl-trait/unsized_coercion5.rs index 51ae4f20671e0..bdf574695c8e8 100644 --- a/tests/ui/impl-trait/unsized_coercion5.rs +++ b/tests/ui/impl-trait/unsized_coercion5.rs @@ -2,6 +2,7 @@ //! constraining their hidden type to a trait object. //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@[next] check-pass diff --git a/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.current.fixed b/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.current.fixed index 922c883f4f71f..fe821e8f32a8a 100644 --- a/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.current.fixed +++ b/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.current.fixed @@ -1,5 +1,6 @@ //@ run-rustfix //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![allow(unused_variables, dead_code)] use std::collections::{BTreeMap, HashSet}; diff --git a/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.current.stderr b/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.current.stderr index 5de99cc6ca6ae..f13c5a147c719 100644 --- a/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.current.stderr +++ b/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.current.stderr @@ -1,5 +1,5 @@ error[E0308]: mismatched types - --> $DIR/assignment-of-clone-call-on-ref-due-to-missing-bound.rs:19:39 + --> $DIR/assignment-of-clone-call-on-ref-due-to-missing-bound.rs:20:39 | LL | let mut x: HashSet = v.clone(); | ------------ ^^^^^^^^^ expected `HashSet`, found `&HashSet` @@ -9,7 +9,7 @@ LL | let mut x: HashSet = v.clone(); = note: expected struct `HashSet<_>` found reference `&HashSet<_>` note: `HashSet` does not implement `Clone`, so `&HashSet` was cloned instead - --> $DIR/assignment-of-clone-call-on-ref-due-to-missing-bound.rs:19:39 + --> $DIR/assignment-of-clone-call-on-ref-due-to-missing-bound.rs:20:39 | LL | let mut x: HashSet = v.clone(); | ^ diff --git a/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.next.fixed b/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.next.fixed index 922c883f4f71f..fe821e8f32a8a 100644 --- a/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.next.fixed +++ b/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.next.fixed @@ -1,5 +1,6 @@ //@ run-rustfix //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![allow(unused_variables, dead_code)] use std::collections::{BTreeMap, HashSet}; diff --git a/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.next.stderr b/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.next.stderr index 5de99cc6ca6ae..f13c5a147c719 100644 --- a/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.next.stderr +++ b/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.next.stderr @@ -1,5 +1,5 @@ error[E0308]: mismatched types - --> $DIR/assignment-of-clone-call-on-ref-due-to-missing-bound.rs:19:39 + --> $DIR/assignment-of-clone-call-on-ref-due-to-missing-bound.rs:20:39 | LL | let mut x: HashSet = v.clone(); | ------------ ^^^^^^^^^ expected `HashSet`, found `&HashSet` @@ -9,7 +9,7 @@ LL | let mut x: HashSet = v.clone(); = note: expected struct `HashSet<_>` found reference `&HashSet<_>` note: `HashSet` does not implement `Clone`, so `&HashSet` was cloned instead - --> $DIR/assignment-of-clone-call-on-ref-due-to-missing-bound.rs:19:39 + --> $DIR/assignment-of-clone-call-on-ref-due-to-missing-bound.rs:20:39 | LL | let mut x: HashSet = v.clone(); | ^ diff --git a/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.rs b/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.rs index 6f7b55be8bd28..25f484caf6c8b 100644 --- a/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.rs +++ b/tests/ui/moves/assignment-of-clone-call-on-ref-due-to-missing-bound.rs @@ -1,5 +1,6 @@ //@ run-rustfix //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![allow(unused_variables, dead_code)] use std::collections::{BTreeMap, HashSet}; diff --git a/tests/ui/never_type/basic/method-on-never.current.stderr b/tests/ui/never_type/basic/method-on-never.current.stderr index ec89b37bc403e..635c8485ed334 100644 --- a/tests/ui/never_type/basic/method-on-never.current.stderr +++ b/tests/ui/never_type/basic/method-on-never.current.stderr @@ -1,5 +1,5 @@ warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:44:7 + --> $DIR/method-on-never.rs:45:7 | LL | x.method(); | ^^^^^^ @@ -10,7 +10,7 @@ LL | x.method(); = note: `#[warn(method_call_on_diverging_infer_var)]` (part of `#[warn(future_incompatible)]`) on by default warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:48:17 + --> $DIR/method-on-never.rs:49:17 | LL | { loop {} }.method(); | ^^^^^^ @@ -20,7 +20,7 @@ LL | { loop {} }.method(); = note: for more information, see issue #156047 warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:53:16 + --> $DIR/method-on-never.rs:54:16 | LL | y => y.method(), | ^^^^^^ @@ -30,7 +30,7 @@ LL | y => y.method(), = note: for more information, see issue #156047 warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:59:27 + --> $DIR/method-on-never.rs:60:27 | LL | error => (&error).anyhow_kind().new(error), | ^^^^^^^^^^^ @@ -40,7 +40,7 @@ LL | error => (&error).anyhow_kind().new(error), = note: for more information, see issue #156047 warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:65:9 + --> $DIR/method-on-never.rs:66:9 | LL | res.method(); | ^^^^^^ @@ -53,7 +53,7 @@ warning: 5 warnings emitted Future incompatibility report: Future breakage diagnostic: warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:44:7 + --> $DIR/method-on-never.rs:45:7 | LL | x.method(); | ^^^^^^ @@ -65,7 +65,7 @@ LL | x.method(); Future breakage diagnostic: warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:48:17 + --> $DIR/method-on-never.rs:49:17 | LL | { loop {} }.method(); | ^^^^^^ @@ -77,7 +77,7 @@ LL | { loop {} }.method(); Future breakage diagnostic: warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:53:16 + --> $DIR/method-on-never.rs:54:16 | LL | y => y.method(), | ^^^^^^ @@ -89,7 +89,7 @@ LL | y => y.method(), Future breakage diagnostic: warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:59:27 + --> $DIR/method-on-never.rs:60:27 | LL | error => (&error).anyhow_kind().new(error), | ^^^^^^^^^^^ @@ -101,7 +101,7 @@ LL | error => (&error).anyhow_kind().new(error), Future breakage diagnostic: warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:65:9 + --> $DIR/method-on-never.rs:66:9 | LL | res.method(); | ^^^^^^ diff --git a/tests/ui/never_type/basic/method-on-never.next.stderr b/tests/ui/never_type/basic/method-on-never.next.stderr index ec89b37bc403e..635c8485ed334 100644 --- a/tests/ui/never_type/basic/method-on-never.next.stderr +++ b/tests/ui/never_type/basic/method-on-never.next.stderr @@ -1,5 +1,5 @@ warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:44:7 + --> $DIR/method-on-never.rs:45:7 | LL | x.method(); | ^^^^^^ @@ -10,7 +10,7 @@ LL | x.method(); = note: `#[warn(method_call_on_diverging_infer_var)]` (part of `#[warn(future_incompatible)]`) on by default warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:48:17 + --> $DIR/method-on-never.rs:49:17 | LL | { loop {} }.method(); | ^^^^^^ @@ -20,7 +20,7 @@ LL | { loop {} }.method(); = note: for more information, see issue #156047 warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:53:16 + --> $DIR/method-on-never.rs:54:16 | LL | y => y.method(), | ^^^^^^ @@ -30,7 +30,7 @@ LL | y => y.method(), = note: for more information, see issue #156047 warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:59:27 + --> $DIR/method-on-never.rs:60:27 | LL | error => (&error).anyhow_kind().new(error), | ^^^^^^^^^^^ @@ -40,7 +40,7 @@ LL | error => (&error).anyhow_kind().new(error), = note: for more information, see issue #156047 warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:65:9 + --> $DIR/method-on-never.rs:66:9 | LL | res.method(); | ^^^^^^ @@ -53,7 +53,7 @@ warning: 5 warnings emitted Future incompatibility report: Future breakage diagnostic: warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:44:7 + --> $DIR/method-on-never.rs:45:7 | LL | x.method(); | ^^^^^^ @@ -65,7 +65,7 @@ LL | x.method(); Future breakage diagnostic: warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:48:17 + --> $DIR/method-on-never.rs:49:17 | LL | { loop {} }.method(); | ^^^^^^ @@ -77,7 +77,7 @@ LL | { loop {} }.method(); Future breakage diagnostic: warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:53:16 + --> $DIR/method-on-never.rs:54:16 | LL | y => y.method(), | ^^^^^^ @@ -89,7 +89,7 @@ LL | y => y.method(), Future breakage diagnostic: warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:59:27 + --> $DIR/method-on-never.rs:60:27 | LL | error => (&error).anyhow_kind().new(error), | ^^^^^^^^^^^ @@ -101,7 +101,7 @@ LL | error => (&error).anyhow_kind().new(error), Future breakage diagnostic: warning: method call on a diverging inference variable - --> $DIR/method-on-never.rs:65:9 + --> $DIR/method-on-never.rs:66:9 | LL | res.method(); | ^^^^^^ diff --git a/tests/ui/never_type/basic/method-on-never.rs b/tests/ui/never_type/basic/method-on-never.rs index ac928a0e9d071..cbc202a60e766 100644 --- a/tests/ui/never_type/basic/method-on-never.rs +++ b/tests/ui/never_type/basic/method-on-never.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass // Regression test for https://github.com/rust-lang/rust/issues/143349 diff --git a/tests/ui/sized-hierarchy/alias-bounds.rs b/tests/ui/sized-hierarchy/alias-bounds.rs index 87b4bab11b746..4ac7a98eacbc3 100644 --- a/tests/ui/sized-hierarchy/alias-bounds.rs +++ b/tests/ui/sized-hierarchy/alias-bounds.rs @@ -1,6 +1,7 @@ //@ check-pass //@ compile-flags: --crate-type=lib //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(sized_hierarchy)] diff --git a/tests/ui/sized-hierarchy/bound-on-assoc-type-projection-1.rs b/tests/ui/sized-hierarchy/bound-on-assoc-type-projection-1.rs index 4a20ed2cafb16..c6a631f0945e6 100644 --- a/tests/ui/sized-hierarchy/bound-on-assoc-type-projection-1.rs +++ b/tests/ui/sized-hierarchy/bound-on-assoc-type-projection-1.rs @@ -1,6 +1,7 @@ //@ check-pass //@ compile-flags: --crate-type=lib //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver use std::marker::PhantomData; diff --git a/tests/ui/sized-hierarchy/elaboration-opt-regions-1.rs b/tests/ui/sized-hierarchy/elaboration-opt-regions-1.rs index d59227beae817..a0d3935022260 100644 --- a/tests/ui/sized-hierarchy/elaboration-opt-regions-1.rs +++ b/tests/ui/sized-hierarchy/elaboration-opt-regions-1.rs @@ -1,6 +1,7 @@ //@ check-pass //@ compile-flags: --crate-type=lib //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(sized_hierarchy)] diff --git a/tests/ui/sized-hierarchy/elaboration-opt-regions.rs b/tests/ui/sized-hierarchy/elaboration-opt-regions.rs index 66e600f3dc96b..3ef7dc4112aaa 100644 --- a/tests/ui/sized-hierarchy/elaboration-opt-regions.rs +++ b/tests/ui/sized-hierarchy/elaboration-opt-regions.rs @@ -1,6 +1,7 @@ //@ check-pass //@ compile-flags: --crate-type=lib //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(sized_hierarchy)] diff --git a/tests/ui/specialization/specialization-default-items-drop-coherence.current.stderr b/tests/ui/specialization/specialization-default-items-drop-coherence.current.stderr index 36df6bfd9fc15..fbe76a86a0583 100644 --- a/tests/ui/specialization/specialization-default-items-drop-coherence.current.stderr +++ b/tests/ui/specialization/specialization-default-items-drop-coherence.current.stderr @@ -1,5 +1,5 @@ error[E0119]: conflicting implementations of trait `Overlap` for type `u32` - --> $DIR/specialization-default-items-drop-coherence.rs:26:1 + --> $DIR/specialization-default-items-drop-coherence.rs:27:1 | LL | impl Overlap for u32 { | -------------------- first implementation here diff --git a/tests/ui/specialization/specialization-default-items-drop-coherence.next.stderr b/tests/ui/specialization/specialization-default-items-drop-coherence.next.stderr index 36df6bfd9fc15..fbe76a86a0583 100644 --- a/tests/ui/specialization/specialization-default-items-drop-coherence.next.stderr +++ b/tests/ui/specialization/specialization-default-items-drop-coherence.next.stderr @@ -1,5 +1,5 @@ error[E0119]: conflicting implementations of trait `Overlap` for type `u32` - --> $DIR/specialization-default-items-drop-coherence.rs:26:1 + --> $DIR/specialization-default-items-drop-coherence.rs:27:1 | LL | impl Overlap for u32 { | -------------------- first implementation here diff --git a/tests/ui/specialization/specialization-default-items-drop-coherence.rs b/tests/ui/specialization/specialization-default-items-drop-coherence.rs index b3c1f72777c4c..45e254c6691e8 100644 --- a/tests/ui/specialization/specialization-default-items-drop-coherence.rs +++ b/tests/ui/specialization/specialization-default-items-drop-coherence.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver // Should fail. Default items completely drop candidates instead of ambiguity, diff --git a/tests/ui/traits/const-traits/assoc-type-const-bound-usage-0.rs b/tests/ui/traits/const-traits/assoc-type-const-bound-usage-0.rs index 0bda247d5f4eb..2be95117b39b2 100644 --- a/tests/ui/traits/const-traits/assoc-type-const-bound-usage-0.rs +++ b/tests/ui/traits/const-traits/assoc-type-const-bound-usage-0.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail-2.current.stderr b/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail-2.current.stderr index 3976c71899e6b..5407be7fcbc88 100644 --- a/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail-2.current.stderr +++ b/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail-2.current.stderr @@ -1,11 +1,11 @@ error[E0277]: the trait bound `U: [const] Other` is not satisfied - --> $DIR/assoc-type-const-bound-usage-fail-2.rs:22:5 + --> $DIR/assoc-type-const-bound-usage-fail-2.rs:23:5 | LL | T::Assoc::::func(); | ^^^^^^^^^^^^^ error[E0277]: the trait bound `U: [const] Other` is not satisfied - --> $DIR/assoc-type-const-bound-usage-fail-2.rs:24:5 + --> $DIR/assoc-type-const-bound-usage-fail-2.rs:25:5 | LL | ::Assoc::::func(); | ^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail-2.next.stderr b/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail-2.next.stderr index 3976c71899e6b..5407be7fcbc88 100644 --- a/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail-2.next.stderr +++ b/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail-2.next.stderr @@ -1,11 +1,11 @@ error[E0277]: the trait bound `U: [const] Other` is not satisfied - --> $DIR/assoc-type-const-bound-usage-fail-2.rs:22:5 + --> $DIR/assoc-type-const-bound-usage-fail-2.rs:23:5 | LL | T::Assoc::::func(); | ^^^^^^^^^^^^^ error[E0277]: the trait bound `U: [const] Other` is not satisfied - --> $DIR/assoc-type-const-bound-usage-fail-2.rs:24:5 + --> $DIR/assoc-type-const-bound-usage-fail-2.rs:25:5 | LL | ::Assoc::::func(); | ^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail-2.rs b/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail-2.rs index a817fff36fa64..e44f94d823ecf 100644 --- a/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail-2.rs +++ b/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail-2.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver // Check that `[const]` item bounds only hold if the where clauses on the diff --git a/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail.current.stderr b/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail.current.stderr index 1f0248365ce6e..20b01d06e8d5e 100644 --- a/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail.current.stderr +++ b/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail.current.stderr @@ -1,11 +1,11 @@ error[E0277]: the trait bound `T: [const] Trait` is not satisfied - --> $DIR/assoc-type-const-bound-usage-fail.rs:16:5 + --> $DIR/assoc-type-const-bound-usage-fail.rs:17:5 | LL | T::Assoc::func(); | ^^^^^^^^ error[E0277]: the trait bound `T: [const] Trait` is not satisfied - --> $DIR/assoc-type-const-bound-usage-fail.rs:18:5 + --> $DIR/assoc-type-const-bound-usage-fail.rs:19:5 | LL | ::Assoc::func(); | ^^^^^^^^^^^^^^^^^^^ diff --git a/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail.next.stderr b/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail.next.stderr index 1f0248365ce6e..20b01d06e8d5e 100644 --- a/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail.next.stderr +++ b/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail.next.stderr @@ -1,11 +1,11 @@ error[E0277]: the trait bound `T: [const] Trait` is not satisfied - --> $DIR/assoc-type-const-bound-usage-fail.rs:16:5 + --> $DIR/assoc-type-const-bound-usage-fail.rs:17:5 | LL | T::Assoc::func(); | ^^^^^^^^ error[E0277]: the trait bound `T: [const] Trait` is not satisfied - --> $DIR/assoc-type-const-bound-usage-fail.rs:18:5 + --> $DIR/assoc-type-const-bound-usage-fail.rs:19:5 | LL | ::Assoc::func(); | ^^^^^^^^^^^^^^^^^^^ diff --git a/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail.rs b/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail.rs index 65c3a06e89c2d..39a9bdf8041ad 100644 --- a/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail.rs +++ b/tests/ui/traits/const-traits/assoc-type-const-bound-usage-fail.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver // Check that `[const]` item bounds only hold if the parent trait is `[const]`. diff --git a/tests/ui/traits/const-traits/assoc-type.current.stderr b/tests/ui/traits/const-traits/assoc-type.current.stderr index 64e2e58f71944..f53747d16752b 100644 --- a/tests/ui/traits/const-traits/assoc-type.current.stderr +++ b/tests/ui/traits/const-traits/assoc-type.current.stderr @@ -1,11 +1,11 @@ error[E0277]: the trait bound `NonConstAdd: [const] Add` is not satisfied - --> $DIR/assoc-type.rs:35:16 + --> $DIR/assoc-type.rs:36:16 | LL | type Bar = NonConstAdd; | ^^^^^^^^^^^ | note: required by a bound in `Foo::Bar` - --> $DIR/assoc-type.rs:31:15 + --> $DIR/assoc-type.rs:32:15 | LL | const trait Foo { LL | type Bar: [const] Add; diff --git a/tests/ui/traits/const-traits/assoc-type.next.stderr b/tests/ui/traits/const-traits/assoc-type.next.stderr index 64e2e58f71944..f53747d16752b 100644 --- a/tests/ui/traits/const-traits/assoc-type.next.stderr +++ b/tests/ui/traits/const-traits/assoc-type.next.stderr @@ -1,11 +1,11 @@ error[E0277]: the trait bound `NonConstAdd: [const] Add` is not satisfied - --> $DIR/assoc-type.rs:35:16 + --> $DIR/assoc-type.rs:36:16 | LL | type Bar = NonConstAdd; | ^^^^^^^^^^^ | note: required by a bound in `Foo::Bar` - --> $DIR/assoc-type.rs:31:15 + --> $DIR/assoc-type.rs:32:15 | LL | const trait Foo { LL | type Bar: [const] Add; diff --git a/tests/ui/traits/const-traits/assoc-type.rs b/tests/ui/traits/const-traits/assoc-type.rs index f01c009b86190..261512a7e698c 100644 --- a/tests/ui/traits/const-traits/assoc-type.rs +++ b/tests/ui/traits/const-traits/assoc-type.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(const_trait_impl)] diff --git a/tests/ui/traits/const-traits/call-const-closure.next.stderr b/tests/ui/traits/const-traits/call-const-closure.next.stderr index bdea41585c666..7583829d9f69f 100644 --- a/tests/ui/traits/const-traits/call-const-closure.next.stderr +++ b/tests/ui/traits/const-traits/call-const-closure.next.stderr @@ -1,5 +1,5 @@ error[E0277]: the trait bound `(): [const] Bar` is not satisfied - --> $DIR/call-const-closure.rs:16:18 + --> $DIR/call-const-closure.rs:17:18 | LL | (const || ().foo())(); | ^^^ diff --git a/tests/ui/traits/const-traits/call-const-closure.old.stderr b/tests/ui/traits/const-traits/call-const-closure.old.stderr index bdea41585c666..7583829d9f69f 100644 --- a/tests/ui/traits/const-traits/call-const-closure.old.stderr +++ b/tests/ui/traits/const-traits/call-const-closure.old.stderr @@ -1,5 +1,5 @@ error[E0277]: the trait bound `(): [const] Bar` is not satisfied - --> $DIR/call-const-closure.rs:16:18 + --> $DIR/call-const-closure.rs:17:18 | LL | (const || ().foo())(); | ^^^ diff --git a/tests/ui/traits/const-traits/call-const-closure.rs b/tests/ui/traits/const-traits/call-const-closure.rs index 5a5369a075358..a4807dde76da8 100644 --- a/tests/ui/traits/const-traits/call-const-closure.rs +++ b/tests/ui/traits/const-traits/call-const-closure.rs @@ -1,5 +1,6 @@ //@[next] compile-flags: -Znext-solver //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@ edition:2021 #![feature(const_trait_impl, const_closures)] diff --git a/tests/ui/traits/const-traits/call.rs b/tests/ui/traits/const-traits/call.rs index 71dea1ef4e049..c13e4f4c1defa 100644 --- a/tests/ui/traits/const-traits/call.rs +++ b/tests/ui/traits/const-traits/call.rs @@ -1,6 +1,7 @@ //@ check-pass //@[next] compile-flags: -Znext-solver //@revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) #![feature(const_closures, const_trait_impl)] const _: () = { diff --git a/tests/ui/traits/const-traits/const-closure-inherited-const-condition.rs b/tests/ui/traits/const-traits/const-closure-inherited-const-condition.rs index b1c929bf78cd9..68d87f140251d 100644 --- a/tests/ui/traits/const-traits/const-closure-inherited-const-condition.rs +++ b/tests/ui/traits/const-traits/const-closure-inherited-const-condition.rs @@ -1,5 +1,6 @@ //@ check-pass //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(const_closures, const_trait_impl)] diff --git a/tests/ui/traits/const-traits/const-closure-trait-method.rs b/tests/ui/traits/const-traits/const-closure-trait-method.rs index 18173371222ea..729e570719e18 100644 --- a/tests/ui/traits/const-traits/const-closure-trait-method.rs +++ b/tests/ui/traits/const-traits/const-closure-trait-method.rs @@ -1,5 +1,6 @@ //@ check-pass //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(const_trait_impl)] diff --git a/tests/ui/traits/const-traits/const-closures.rs b/tests/ui/traits/const-traits/const-closures.rs index 8f1c018ca5dd4..65c08231774ea 100644 --- a/tests/ui/traits/const-traits/const-closures.rs +++ b/tests/ui/traits/const-traits/const-closures.rs @@ -1,5 +1,6 @@ //@ check-pass //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(const_trait_impl)] diff --git a/tests/ui/traits/const-traits/const-drop-fail.new_precise.stderr b/tests/ui/traits/const-traits/const-drop-fail.new_precise.stderr index 33289d9ed3386..9d7d1a154ec78 100644 --- a/tests/ui/traits/const-traits/const-drop-fail.new_precise.stderr +++ b/tests/ui/traits/const-traits/const-drop-fail.new_precise.stderr @@ -1,17 +1,17 @@ error[E0367]: `NonTrivialDrop` does not implement `[const] Destruct` - --> $DIR/const-drop-fail.rs:19:30 + --> $DIR/const-drop-fail.rs:20:30 | LL | struct ConstImplWithDropGlue(NonTrivialDrop); | ^^^^^^^^^^^^^^ | note: required for this `Drop` impl - --> $DIR/const-drop-fail.rs:22:1 + --> $DIR/const-drop-fail.rs:23:1 | LL | const impl Drop for ConstImplWithDropGlue { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0277]: the trait bound `NonTrivialDrop: const Destruct` is not satisfied - --> $DIR/const-drop-fail.rs:35:5 + --> $DIR/const-drop-fail.rs:36:5 | LL | const _: () = check($exp); | ----- required by a bound introduced by this call @@ -20,13 +20,13 @@ LL | NonTrivialDrop, | ^^^^^^^^^^^^^^ | note: required by a bound in `check` - --> $DIR/const-drop-fail.rs:26:19 + --> $DIR/const-drop-fail.rs:27:19 | LL | const fn check(_: T) {} | ^^^^^^^^^^^^^^^^ required by this bound in `check` error[E0277]: the trait bound `NonTrivialDrop: const Destruct` is not satisfied - --> $DIR/const-drop-fail.rs:37:5 + --> $DIR/const-drop-fail.rs:38:5 | LL | const _: () = check($exp); | ----- required by a bound introduced by this call @@ -35,7 +35,7 @@ LL | ConstImplWithDropGlue(NonTrivialDrop), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: required by a bound in `check` - --> $DIR/const-drop-fail.rs:26:19 + --> $DIR/const-drop-fail.rs:27:19 | LL | const fn check(_: T) {} | ^^^^^^^^^^^^^^^^ required by this bound in `check` diff --git a/tests/ui/traits/const-traits/const-drop-fail.new_stock.stderr b/tests/ui/traits/const-traits/const-drop-fail.new_stock.stderr index 33289d9ed3386..9d7d1a154ec78 100644 --- a/tests/ui/traits/const-traits/const-drop-fail.new_stock.stderr +++ b/tests/ui/traits/const-traits/const-drop-fail.new_stock.stderr @@ -1,17 +1,17 @@ error[E0367]: `NonTrivialDrop` does not implement `[const] Destruct` - --> $DIR/const-drop-fail.rs:19:30 + --> $DIR/const-drop-fail.rs:20:30 | LL | struct ConstImplWithDropGlue(NonTrivialDrop); | ^^^^^^^^^^^^^^ | note: required for this `Drop` impl - --> $DIR/const-drop-fail.rs:22:1 + --> $DIR/const-drop-fail.rs:23:1 | LL | const impl Drop for ConstImplWithDropGlue { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0277]: the trait bound `NonTrivialDrop: const Destruct` is not satisfied - --> $DIR/const-drop-fail.rs:35:5 + --> $DIR/const-drop-fail.rs:36:5 | LL | const _: () = check($exp); | ----- required by a bound introduced by this call @@ -20,13 +20,13 @@ LL | NonTrivialDrop, | ^^^^^^^^^^^^^^ | note: required by a bound in `check` - --> $DIR/const-drop-fail.rs:26:19 + --> $DIR/const-drop-fail.rs:27:19 | LL | const fn check(_: T) {} | ^^^^^^^^^^^^^^^^ required by this bound in `check` error[E0277]: the trait bound `NonTrivialDrop: const Destruct` is not satisfied - --> $DIR/const-drop-fail.rs:37:5 + --> $DIR/const-drop-fail.rs:38:5 | LL | const _: () = check($exp); | ----- required by a bound introduced by this call @@ -35,7 +35,7 @@ LL | ConstImplWithDropGlue(NonTrivialDrop), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: required by a bound in `check` - --> $DIR/const-drop-fail.rs:26:19 + --> $DIR/const-drop-fail.rs:27:19 | LL | const fn check(_: T) {} | ^^^^^^^^^^^^^^^^ required by this bound in `check` diff --git a/tests/ui/traits/const-traits/const-drop-fail.old_precise.stderr b/tests/ui/traits/const-traits/const-drop-fail.old_precise.stderr index 33289d9ed3386..9d7d1a154ec78 100644 --- a/tests/ui/traits/const-traits/const-drop-fail.old_precise.stderr +++ b/tests/ui/traits/const-traits/const-drop-fail.old_precise.stderr @@ -1,17 +1,17 @@ error[E0367]: `NonTrivialDrop` does not implement `[const] Destruct` - --> $DIR/const-drop-fail.rs:19:30 + --> $DIR/const-drop-fail.rs:20:30 | LL | struct ConstImplWithDropGlue(NonTrivialDrop); | ^^^^^^^^^^^^^^ | note: required for this `Drop` impl - --> $DIR/const-drop-fail.rs:22:1 + --> $DIR/const-drop-fail.rs:23:1 | LL | const impl Drop for ConstImplWithDropGlue { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0277]: the trait bound `NonTrivialDrop: const Destruct` is not satisfied - --> $DIR/const-drop-fail.rs:35:5 + --> $DIR/const-drop-fail.rs:36:5 | LL | const _: () = check($exp); | ----- required by a bound introduced by this call @@ -20,13 +20,13 @@ LL | NonTrivialDrop, | ^^^^^^^^^^^^^^ | note: required by a bound in `check` - --> $DIR/const-drop-fail.rs:26:19 + --> $DIR/const-drop-fail.rs:27:19 | LL | const fn check(_: T) {} | ^^^^^^^^^^^^^^^^ required by this bound in `check` error[E0277]: the trait bound `NonTrivialDrop: const Destruct` is not satisfied - --> $DIR/const-drop-fail.rs:37:5 + --> $DIR/const-drop-fail.rs:38:5 | LL | const _: () = check($exp); | ----- required by a bound introduced by this call @@ -35,7 +35,7 @@ LL | ConstImplWithDropGlue(NonTrivialDrop), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: required by a bound in `check` - --> $DIR/const-drop-fail.rs:26:19 + --> $DIR/const-drop-fail.rs:27:19 | LL | const fn check(_: T) {} | ^^^^^^^^^^^^^^^^ required by this bound in `check` diff --git a/tests/ui/traits/const-traits/const-drop-fail.old_stock.stderr b/tests/ui/traits/const-traits/const-drop-fail.old_stock.stderr index 33289d9ed3386..9d7d1a154ec78 100644 --- a/tests/ui/traits/const-traits/const-drop-fail.old_stock.stderr +++ b/tests/ui/traits/const-traits/const-drop-fail.old_stock.stderr @@ -1,17 +1,17 @@ error[E0367]: `NonTrivialDrop` does not implement `[const] Destruct` - --> $DIR/const-drop-fail.rs:19:30 + --> $DIR/const-drop-fail.rs:20:30 | LL | struct ConstImplWithDropGlue(NonTrivialDrop); | ^^^^^^^^^^^^^^ | note: required for this `Drop` impl - --> $DIR/const-drop-fail.rs:22:1 + --> $DIR/const-drop-fail.rs:23:1 | LL | const impl Drop for ConstImplWithDropGlue { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0277]: the trait bound `NonTrivialDrop: const Destruct` is not satisfied - --> $DIR/const-drop-fail.rs:35:5 + --> $DIR/const-drop-fail.rs:36:5 | LL | const _: () = check($exp); | ----- required by a bound introduced by this call @@ -20,13 +20,13 @@ LL | NonTrivialDrop, | ^^^^^^^^^^^^^^ | note: required by a bound in `check` - --> $DIR/const-drop-fail.rs:26:19 + --> $DIR/const-drop-fail.rs:27:19 | LL | const fn check(_: T) {} | ^^^^^^^^^^^^^^^^ required by this bound in `check` error[E0277]: the trait bound `NonTrivialDrop: const Destruct` is not satisfied - --> $DIR/const-drop-fail.rs:37:5 + --> $DIR/const-drop-fail.rs:38:5 | LL | const _: () = check($exp); | ----- required by a bound introduced by this call @@ -35,7 +35,7 @@ LL | ConstImplWithDropGlue(NonTrivialDrop), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | note: required by a bound in `check` - --> $DIR/const-drop-fail.rs:26:19 + --> $DIR/const-drop-fail.rs:27:19 | LL | const fn check(_: T) {} | ^^^^^^^^^^^^^^^^ required by this bound in `check` diff --git a/tests/ui/traits/const-traits/const-drop-fail.rs b/tests/ui/traits/const-traits/const-drop-fail.rs index d85c942bbe6a7..5a3894ed4dfe2 100644 --- a/tests/ui/traits/const-traits/const-drop-fail.rs +++ b/tests/ui/traits/const-traits/const-drop-fail.rs @@ -1,6 +1,7 @@ //@[new_precise] compile-flags: -Znext-solver //@[new_stock] compile-flags: -Znext-solver //@ revisions: new_stock old_stock new_precise old_precise +//@ ignore-compare-mode-next-solver (explicit revisions) //@ ignore-backends: gcc #![feature(const_trait_impl, const_destruct)] diff --git a/tests/ui/traits/const-traits/drop-manually-drop-no-drop-impl.rs b/tests/ui/traits/const-traits/drop-manually-drop-no-drop-impl.rs index 060a543d6c3db..b55c2e7edb9ef 100644 --- a/tests/ui/traits/const-traits/drop-manually-drop-no-drop-impl.rs +++ b/tests/ui/traits/const-traits/drop-manually-drop-no-drop-impl.rs @@ -1,5 +1,6 @@ //@[new] compile-flags: -Znext-solver //@ revisions: old new +//@ ignore-compare-mode-next-solver (explicit revisions) //@ check-pass use std::mem::ManuallyDrop; diff --git a/tests/ui/traits/const-traits/drop-manually-drop.rs b/tests/ui/traits/const-traits/drop-manually-drop.rs index 23f17701f586e..9e018e961876a 100644 --- a/tests/ui/traits/const-traits/drop-manually-drop.rs +++ b/tests/ui/traits/const-traits/drop-manually-drop.rs @@ -1,5 +1,6 @@ //@[new] compile-flags: -Znext-solver //@ revisions: old new +//@ ignore-compare-mode-next-solver (explicit revisions) //@ check-pass #![feature(const_destruct)] diff --git a/tests/ui/traits/default_auto_traits/extern-types.current.stderr b/tests/ui/traits/default_auto_traits/extern-types.current.stderr index 593204382e3a1..15b62f1212e11 100644 --- a/tests/ui/traits/default_auto_traits/extern-types.current.stderr +++ b/tests/ui/traits/default_auto_traits/extern-types.current.stderr @@ -1,5 +1,5 @@ error[E0277]: the trait bound `extern_non_leak::Opaque: Leak` is not satisfied - --> $DIR/extern-types.rs:50:13 + --> $DIR/extern-types.rs:51:13 | LL | foo(x); | --- ^ the trait `Leak` is not implemented for `extern_non_leak::Opaque` @@ -7,7 +7,7 @@ LL | foo(x); | required by a bound introduced by this call | note: required by a bound in `foo` - --> $DIR/extern-types.rs:26:8 + --> $DIR/extern-types.rs:27:8 | LL | fn foo(_: &T) {} | ^ required by this bound in `foo` diff --git a/tests/ui/traits/default_auto_traits/extern-types.next.stderr b/tests/ui/traits/default_auto_traits/extern-types.next.stderr index 593204382e3a1..15b62f1212e11 100644 --- a/tests/ui/traits/default_auto_traits/extern-types.next.stderr +++ b/tests/ui/traits/default_auto_traits/extern-types.next.stderr @@ -1,5 +1,5 @@ error[E0277]: the trait bound `extern_non_leak::Opaque: Leak` is not satisfied - --> $DIR/extern-types.rs:50:13 + --> $DIR/extern-types.rs:51:13 | LL | foo(x); | --- ^ the trait `Leak` is not implemented for `extern_non_leak::Opaque` @@ -7,7 +7,7 @@ LL | foo(x); | required by a bound introduced by this call | note: required by a bound in `foo` - --> $DIR/extern-types.rs:26:8 + --> $DIR/extern-types.rs:27:8 | LL | fn foo(_: &T) {} | ^ required by this bound in `foo` diff --git a/tests/ui/traits/default_auto_traits/extern-types.rs b/tests/ui/traits/default_auto_traits/extern-types.rs index df106d83171c9..57d3ec65750f5 100644 --- a/tests/ui/traits/default_auto_traits/extern-types.rs +++ b/tests/ui/traits/default_auto_traits/extern-types.rs @@ -1,5 +1,6 @@ //@ compile-flags: -Zexperimental-default-bounds //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver #![feature(auto_traits, extern_types, lang_items, negative_impls, no_core, rustc_attrs)] diff --git a/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.current.stderr b/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.current.stderr index 4766e426cd331..4e038e4bd7085 100644 --- a/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.current.stderr +++ b/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.current.stderr @@ -1,5 +1,5 @@ error[E0277]: the trait bound `[A]: ToOwned` is not satisfied - --> $DIR/cow-slice-missing-clone-issue-141241.rs:16:11 + --> $DIR/cow-slice-missing-clone-issue-141241.rs:17:11 | LL | test: Cow<'static, [A]>, | ^^^^^^^^^^^^^^^^^ the trait `ToOwned` is not implemented for `[A]` diff --git a/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.next.stderr b/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.next.stderr index 0d5b9bc94ca27..63d5935ece818 100644 --- a/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.next.stderr +++ b/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.next.stderr @@ -1,5 +1,5 @@ error[E0277]: the trait bound `[A]: ToOwned` is not satisfied - --> $DIR/cow-slice-missing-clone-issue-141241.rs:16:11 + --> $DIR/cow-slice-missing-clone-issue-141241.rs:17:11 | LL | test: Cow<'static, [A]>, | ^^^^^^^^^^^^^^^^^ the trait `ToOwned` is not implemented for `[A]` diff --git a/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.rs b/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.rs index f1eccd0ce13d7..6fce37f5072a9 100644 --- a/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.rs +++ b/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.rs @@ -1,4 +1,5 @@ //@ revisions: current next with_clone +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver //@ [with_clone] check-pass diff --git a/tests/ui/traits/generic-cow-inference-regression.rs b/tests/ui/traits/generic-cow-inference-regression.rs index e9dd76d1aea4f..936f5b7d760a2 100644 --- a/tests/ui/traits/generic-cow-inference-regression.rs +++ b/tests/ui/traits/generic-cow-inference-regression.rs @@ -1,5 +1,6 @@ //@[new] compile-flags: -Znext-solver //@ revisions: old new +//@ ignore-compare-mode-next-solver (explicit revisions) //@ run-pass // regression test for #147964: diff --git a/tests/ui/traits/issue-90662-projection-caching.rs b/tests/ui/traits/issue-90662-projection-caching.rs index 247cc78979a91..0084737b008d5 100644 --- a/tests/ui/traits/issue-90662-projection-caching.rs +++ b/tests/ui/traits/issue-90662-projection-caching.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver=coherence //@ check-pass diff --git a/tests/ui/traits/next-solver/adt-const-param-projection.rs b/tests/ui/traits/next-solver/adt-const-param-projection.rs index 926451bae2c3d..8f440b99f4a86 100644 --- a/tests/ui/traits/next-solver/adt-const-param-projection.rs +++ b/tests/ui/traits/next-solver/adt-const-param-projection.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ build-pass //@ compile-flags: --crate-type=lib diff --git a/tests/ui/traits/next-solver/alias-bound-preference.rs b/tests/ui/traits/next-solver/alias-bound-preference.rs index 99008bddf4ffb..305a4735399d0 100644 --- a/tests/ui/traits/next-solver/alias-bound-preference.rs +++ b/tests/ui/traits/next-solver/alias-bound-preference.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ run-pass diff --git a/tests/ui/traits/next-solver/ambiguous-impl-in-resolve.next.stderr b/tests/ui/traits/next-solver/ambiguous-impl-in-resolve.next.stderr index 20bbcdd8af423..8650f7fcf1087 100644 --- a/tests/ui/traits/next-solver/ambiguous-impl-in-resolve.next.stderr +++ b/tests/ui/traits/next-solver/ambiguous-impl-in-resolve.next.stderr @@ -1,11 +1,11 @@ error[E0283]: type annotations needed: cannot satisfy `Option: Overlap` - --> $DIR/ambiguous-impl-in-resolve.rs:17:6 + --> $DIR/ambiguous-impl-in-resolve.rs:18:6 | LL | as Overlap>::f(); | ^^^^^^^^^ | note: multiple `impl`s satisfying `Option: Overlap` found - --> $DIR/ambiguous-impl-in-resolve.rs:10:1 + --> $DIR/ambiguous-impl-in-resolve.rs:11:1 | LL | impl Overlap for Option where Self: Clone, { fn f() {} } | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/ui/traits/next-solver/ambiguous-impl-in-resolve.old.stderr b/tests/ui/traits/next-solver/ambiguous-impl-in-resolve.old.stderr index 20bbcdd8af423..8650f7fcf1087 100644 --- a/tests/ui/traits/next-solver/ambiguous-impl-in-resolve.old.stderr +++ b/tests/ui/traits/next-solver/ambiguous-impl-in-resolve.old.stderr @@ -1,11 +1,11 @@ error[E0283]: type annotations needed: cannot satisfy `Option: Overlap` - --> $DIR/ambiguous-impl-in-resolve.rs:17:6 + --> $DIR/ambiguous-impl-in-resolve.rs:18:6 | LL | as Overlap>::f(); | ^^^^^^^^^ | note: multiple `impl`s satisfying `Option: Overlap` found - --> $DIR/ambiguous-impl-in-resolve.rs:10:1 + --> $DIR/ambiguous-impl-in-resolve.rs:11:1 | LL | impl Overlap for Option where Self: Clone, { fn f() {} } | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/ui/traits/next-solver/ambiguous-impl-in-resolve.rs b/tests/ui/traits/next-solver/ambiguous-impl-in-resolve.rs index fd90d11575b07..1ee432a9ab1e8 100644 --- a/tests/ui/traits/next-solver/ambiguous-impl-in-resolve.rs +++ b/tests/ui/traits/next-solver/ambiguous-impl-in-resolve.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver // Impossible where-clauses can cause multiple overlapping impls to apply diff --git a/tests/ui/traits/next-solver/closure-signature-inference-hr-ambig-alias-naming-self.rs b/tests/ui/traits/next-solver/closure-signature-inference-hr-ambig-alias-naming-self.rs index 25649d9290326..3c0962085fe6b 100644 --- a/tests/ui/traits/next-solver/closure-signature-inference-hr-ambig-alias-naming-self.rs +++ b/tests/ui/traits/next-solver/closure-signature-inference-hr-ambig-alias-naming-self.rs @@ -1,5 +1,6 @@ //@ check-pass //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver // When type checking a closure expr we look at the list of unsolved goals diff --git a/tests/ui/traits/next-solver/generalize/alias-with-bound-vars-incomplete-generalization.rs b/tests/ui/traits/next-solver/generalize/alias-with-bound-vars-incomplete-generalization.rs index bf2276e4967b0..2070a3b730e03 100644 --- a/tests/ui/traits/next-solver/generalize/alias-with-bound-vars-incomplete-generalization.rs +++ b/tests/ui/traits/next-solver/generalize/alias-with-bound-vars-incomplete-generalization.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/traits/next-solver/normalize/dont-mark-const-aliases-as-rigid-in-param-env.rs b/tests/ui/traits/next-solver/normalize/dont-mark-const-aliases-as-rigid-in-param-env.rs index 0c3fb9fcbea3c..ae34fe8fa44e2 100644 --- a/tests/ui/traits/next-solver/normalize/dont-mark-const-aliases-as-rigid-in-param-env.rs +++ b/tests/ui/traits/next-solver/normalize/dont-mark-const-aliases-as-rigid-in-param-env.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/traits/next-solver/opaques/dump-layout-opaque-coroutine.next.stderr b/tests/ui/traits/next-solver/opaques/dump-layout-opaque-coroutine.next.stderr index 52aa7cbcab583..2faa658195765 100644 --- a/tests/ui/traits/next-solver/opaques/dump-layout-opaque-coroutine.next.stderr +++ b/tests/ui/traits/next-solver/opaques/dump-layout-opaque-coroutine.next.stderr @@ -1,5 +1,5 @@ error: size: Size(1 bytes) - --> $DIR/dump-layout-opaque-coroutine.rs:19:1 + --> $DIR/dump-layout-opaque-coroutine.rs:20:1 | LL | type Foo = impl Sized; | ^^^^^^^^ diff --git a/tests/ui/traits/next-solver/opaques/dump-layout-opaque-coroutine.old.stderr b/tests/ui/traits/next-solver/opaques/dump-layout-opaque-coroutine.old.stderr index 52aa7cbcab583..2faa658195765 100644 --- a/tests/ui/traits/next-solver/opaques/dump-layout-opaque-coroutine.old.stderr +++ b/tests/ui/traits/next-solver/opaques/dump-layout-opaque-coroutine.old.stderr @@ -1,5 +1,5 @@ error: size: Size(1 bytes) - --> $DIR/dump-layout-opaque-coroutine.rs:19:1 + --> $DIR/dump-layout-opaque-coroutine.rs:20:1 | LL | type Foo = impl Sized; | ^^^^^^^^ diff --git a/tests/ui/traits/next-solver/opaques/dump-layout-opaque-coroutine.rs b/tests/ui/traits/next-solver/opaques/dump-layout-opaque-coroutine.rs index cb95c2f67475e..04bce2d14e25b 100644 --- a/tests/ui/traits/next-solver/opaques/dump-layout-opaque-coroutine.rs +++ b/tests/ui/traits/next-solver/opaques/dump-layout-opaque-coroutine.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ edition: 2024 diff --git a/tests/ui/traits/next-solver/overflow/fcw-on-auto-trait.next.stderr b/tests/ui/traits/next-solver/overflow/fcw-on-auto-trait.next.stderr index 335cee2dc40cb..64dfcbf180199 100644 --- a/tests/ui/traits/next-solver/overflow/fcw-on-auto-trait.next.stderr +++ b/tests/ui/traits/next-solver/overflow/fcw-on-auto-trait.next.stderr @@ -1,5 +1,5 @@ warning: overflow evaluating the requirement `Foo>>>>>: Sync` - --> $DIR/fcw-on-auto-trait.rs:22:5 + --> $DIR/fcw-on-auto-trait.rs:23:5 | LL | require_sync::>>>>>>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/ui/traits/next-solver/overflow/fcw-on-auto-trait.rs b/tests/ui/traits/next-solver/overflow/fcw-on-auto-trait.rs index 73c0a5c153893..450b680214868 100644 --- a/tests/ui/traits/next-solver/overflow/fcw-on-auto-trait.rs +++ b/tests/ui/traits/next-solver/overflow/fcw-on-auto-trait.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/traits/next-solver/overflow/fcw-on-normalization.next.stderr b/tests/ui/traits/next-solver/overflow/fcw-on-normalization.next.stderr index b0f923ca887b8..13b47888560cc 100644 --- a/tests/ui/traits/next-solver/overflow/fcw-on-normalization.next.stderr +++ b/tests/ui/traits/next-solver/overflow/fcw-on-normalization.next.stderr @@ -1,5 +1,5 @@ warning: overflow evaluating the requirement `>>>>>>>>> as HasAssoc>::Assoc == ()` - --> $DIR/fcw-on-normalization.rs:40:12 + --> $DIR/fcw-on-normalization.rs:41:12 | LL | let b: >>>>>>>>> as HasAssoc>::Assoc = loop {}; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/ui/traits/next-solver/overflow/fcw-on-normalization.rs b/tests/ui/traits/next-solver/overflow/fcw-on-normalization.rs index c8fa0366f2944..c9659b24b3120 100644 --- a/tests/ui/traits/next-solver/overflow/fcw-on-normalization.rs +++ b/tests/ui/traits/next-solver/overflow/fcw-on-normalization.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/traits/next-solver/overflow/fcw-overflow-to-ambig-with-constraints.next.stderr b/tests/ui/traits/next-solver/overflow/fcw-overflow-to-ambig-with-constraints.next.stderr index 1aa69678bdfbf..14151fbf4fcfc 100644 --- a/tests/ui/traits/next-solver/overflow/fcw-overflow-to-ambig-with-constraints.next.stderr +++ b/tests/ui/traits/next-solver/overflow/fcw-overflow-to-ambig-with-constraints.next.stderr @@ -1,5 +1,5 @@ warning: overflow evaluating the requirement `u32: Constrain>>>, W, _>>, _>>` - --> $DIR/fcw-overflow-to-ambig-with-constraints.rs:29:5 + --> $DIR/fcw-overflow-to-ambig-with-constraints.rs:30:5 | LL | fun_times(); | ^^^^^^^^^^^ diff --git a/tests/ui/traits/next-solver/overflow/fcw-overflow-to-ambig-with-constraints.rs b/tests/ui/traits/next-solver/overflow/fcw-overflow-to-ambig-with-constraints.rs index d8606225f246f..4d071a2832b29 100644 --- a/tests/ui/traits/next-solver/overflow/fcw-overflow-to-ambig-with-constraints.rs +++ b/tests/ui/traits/next-solver/overflow/fcw-overflow-to-ambig-with-constraints.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/traits/next-solver/overflow/fcw-overflow-to-error.next.stderr b/tests/ui/traits/next-solver/overflow/fcw-overflow-to-error.next.stderr index bc5097d29ec4a..0632f7dc474b8 100644 --- a/tests/ui/traits/next-solver/overflow/fcw-overflow-to-error.next.stderr +++ b/tests/ui/traits/next-solver/overflow/fcw-overflow-to-error.next.stderr @@ -1,5 +1,5 @@ warning: overflow evaluating the requirement `W>>>>: Overflow` - --> $DIR/fcw-overflow-to-error.rs:34:23 + --> $DIR/fcw-overflow-to-error.rs:35:23 | LL | W(W(W(W(W(()))))).foo(); | ^^^ diff --git a/tests/ui/traits/next-solver/overflow/fcw-overflow-to-error.rs b/tests/ui/traits/next-solver/overflow/fcw-overflow-to-error.rs index 3dbb9090fe72b..1d8be2cf7a0d8 100644 --- a/tests/ui/traits/next-solver/overflow/fcw-overflow-to-error.rs +++ b/tests/ui/traits/next-solver/overflow/fcw-overflow-to-error.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/traits/next-solver/overflow/nalgebra-hang.rs b/tests/ui/traits/next-solver/overflow/nalgebra-hang.rs index 4bc6039c57dfd..7c9212a36f77f 100644 --- a/tests/ui/traits/next-solver/overflow/nalgebra-hang.rs +++ b/tests/ui/traits/next-solver/overflow/nalgebra-hang.rs @@ -1,5 +1,6 @@ //@ check-pass //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver // Regression test for nalgebra hang from diff --git a/tests/ui/traits/next-solver/param-env-normalization-fallback.next.stderr b/tests/ui/traits/next-solver/param-env-normalization-fallback.next.stderr index 8028c4d5415f3..80e87f23c6721 100644 --- a/tests/ui/traits/next-solver/param-env-normalization-fallback.next.stderr +++ b/tests/ui/traits/next-solver/param-env-normalization-fallback.next.stderr @@ -1,5 +1,5 @@ error[E0277]: the trait bound `Indir: Trait1` is not satisfied - --> $DIR/param-env-normalization-fallback.rs:21:1 + --> $DIR/param-env-normalization-fallback.rs:22:1 | LL | / impl Trait2 for T LL | | @@ -10,29 +10,29 @@ LL | | T: Trait1::Assoc1>, | |__________________________________________________^ unsatisfied trait bound | help: the trait `Trait1` is not implemented for `Indir` - --> $DIR/param-env-normalization-fallback.rs:15:1 + --> $DIR/param-env-normalization-fallback.rs:16:1 | LL | struct Indir; | ^^^^^^^^^^^^ help: this trait has no implementations, consider adding one - --> $DIR/param-env-normalization-fallback.rs:11:1 + --> $DIR/param-env-normalization-fallback.rs:12:1 | LL | trait Trait1 { | ^^^^^^^^^^^^ error[E0277]: the trait bound `Indir: Trait1` is not satisfied - --> $DIR/param-env-normalization-fallback.rs:28:5 + --> $DIR/param-env-normalization-fallback.rs:29:5 | LL | type Assoc2 = (); | ^^^^^^^^^^^ unsatisfied trait bound | help: the trait `Trait1` is not implemented for `Indir` - --> $DIR/param-env-normalization-fallback.rs:15:1 + --> $DIR/param-env-normalization-fallback.rs:16:1 | LL | struct Indir; | ^^^^^^^^^^^^ help: this trait has no implementations, consider adding one - --> $DIR/param-env-normalization-fallback.rs:11:1 + --> $DIR/param-env-normalization-fallback.rs:12:1 | LL | trait Trait1 { | ^^^^^^^^^^^^ diff --git a/tests/ui/traits/next-solver/param-env-normalization-fallback.old.stderr b/tests/ui/traits/next-solver/param-env-normalization-fallback.old.stderr index 8028c4d5415f3..80e87f23c6721 100644 --- a/tests/ui/traits/next-solver/param-env-normalization-fallback.old.stderr +++ b/tests/ui/traits/next-solver/param-env-normalization-fallback.old.stderr @@ -1,5 +1,5 @@ error[E0277]: the trait bound `Indir: Trait1` is not satisfied - --> $DIR/param-env-normalization-fallback.rs:21:1 + --> $DIR/param-env-normalization-fallback.rs:22:1 | LL | / impl Trait2 for T LL | | @@ -10,29 +10,29 @@ LL | | T: Trait1::Assoc1>, | |__________________________________________________^ unsatisfied trait bound | help: the trait `Trait1` is not implemented for `Indir` - --> $DIR/param-env-normalization-fallback.rs:15:1 + --> $DIR/param-env-normalization-fallback.rs:16:1 | LL | struct Indir; | ^^^^^^^^^^^^ help: this trait has no implementations, consider adding one - --> $DIR/param-env-normalization-fallback.rs:11:1 + --> $DIR/param-env-normalization-fallback.rs:12:1 | LL | trait Trait1 { | ^^^^^^^^^^^^ error[E0277]: the trait bound `Indir: Trait1` is not satisfied - --> $DIR/param-env-normalization-fallback.rs:28:5 + --> $DIR/param-env-normalization-fallback.rs:29:5 | LL | type Assoc2 = (); | ^^^^^^^^^^^ unsatisfied trait bound | help: the trait `Trait1` is not implemented for `Indir` - --> $DIR/param-env-normalization-fallback.rs:15:1 + --> $DIR/param-env-normalization-fallback.rs:16:1 | LL | struct Indir; | ^^^^^^^^^^^^ help: this trait has no implementations, consider adding one - --> $DIR/param-env-normalization-fallback.rs:11:1 + --> $DIR/param-env-normalization-fallback.rs:12:1 | LL | trait Trait1 { | ^^^^^^^^^^^^ diff --git a/tests/ui/traits/next-solver/param-env-normalization-fallback.rs b/tests/ui/traits/next-solver/param-env-normalization-fallback.rs index aa24df4984ae6..2fd5d30f1966e 100644 --- a/tests/ui/traits/next-solver/param-env-normalization-fallback.rs +++ b/tests/ui/traits/next-solver/param-env-normalization-fallback.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver // Previously the fallback of param env normalization was elaborated param env diff --git a/tests/ui/traits/next-solver/self-referential-closure-sig-1.rs b/tests/ui/traits/next-solver/self-referential-closure-sig-1.rs index ad401602a3267..6451651ef1ec7 100644 --- a/tests/ui/traits/next-solver/self-referential-closure-sig-1.rs +++ b/tests/ui/traits/next-solver/self-referential-closure-sig-1.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/traits/next-solver/self-referential-closure-sig-3.rs b/tests/ui/traits/next-solver/self-referential-closure-sig-3.rs index bbbbc5c3e50cb..352c44bb168cd 100644 --- a/tests/ui/traits/next-solver/self-referential-closure-sig-3.rs +++ b/tests/ui/traits/next-solver/self-referential-closure-sig-3.rs @@ -1,4 +1,5 @@ //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/traits/non-send-field-location-issue-146016.current.stderr b/tests/ui/traits/non-send-field-location-issue-146016.current.stderr index 5366c04cb537b..8ae10c22aa5ca 100644 --- a/tests/ui/traits/non-send-field-location-issue-146016.current.stderr +++ b/tests/ui/traits/non-send-field-location-issue-146016.current.stderr @@ -1,58 +1,58 @@ error[E0277]: `*const c_void` cannot be sent between threads safely - --> $DIR/non-send-field-location-issue-146016.rs:41:20 + --> $DIR/non-send-field-location-issue-146016.rs:42:20 | LL | require_send::>(); | ^^^^^^^^^^^ `*const c_void` cannot be sent between threads safely | = help: within `Record<*const c_void>`, the trait `Send` is not implemented for `*const c_void` note: required because it appears within the type `Record<*const c_void>` - --> $DIR/non-send-field-location-issue-146016.rs:26:5 + --> $DIR/non-send-field-location-issue-146016.rs:27:5 | LL | struct Record { LL | unrelated: u8, LL | value: T, | ^^^^^^^^ required by this field note: required by a bound in `require_send` - --> $DIR/non-send-field-location-issue-146016.rs:38:20 + --> $DIR/non-send-field-location-issue-146016.rs:39:20 | LL | fn require_send() {} | ^^^^ required by this bound in `require_send` error[E0277]: `*const c_void` cannot be sent between threads safely - --> $DIR/non-send-field-location-issue-146016.rs:43:20 + --> $DIR/non-send-field-location-issue-146016.rs:44:20 | LL | require_send::>(); | ^^^^^^^^^^^ `*const c_void` cannot be sent between threads safely | = help: within `Nested<*const c_void>`, the trait `Send` is not implemented for `*const c_void` note: required because it appears within the type `Record<*const c_void>` - --> $DIR/non-send-field-location-issue-146016.rs:26:5 + --> $DIR/non-send-field-location-issue-146016.rs:27:5 | LL | struct Record { LL | unrelated: u8, LL | value: T, | ^^^^^^^^ required by this field note: required because it appears within the type `Nested<*const c_void>` - --> $DIR/non-send-field-location-issue-146016.rs:30:5 + --> $DIR/non-send-field-location-issue-146016.rs:31:5 | LL | struct Nested { LL | value: Record, | ^^^^^^^^^^^^^^^^ required by this field note: required by a bound in `require_send` - --> $DIR/non-send-field-location-issue-146016.rs:38:20 + --> $DIR/non-send-field-location-issue-146016.rs:39:20 | LL | fn require_send() {} | ^^^^ required by this bound in `require_send` error[E0277]: `*const c_void` cannot be sent between threads safely - --> $DIR/non-send-field-location-issue-146016.rs:45:20 + --> $DIR/non-send-field-location-issue-146016.rs:46:20 | LL | require_send::>(); | ^^^^^^^^^^^^^ `*const c_void` cannot be sent between threads safely | = help: within `Multiple<*const c_void>`, the trait `Send` is not implemented for `*const c_void` note: required because it appears within the type `Multiple<*const c_void>` - --> $DIR/non-send-field-location-issue-146016.rs:35:14 + --> $DIR/non-send-field-location-issue-146016.rs:36:14 | LL | enum Multiple { LL | Empty, @@ -61,13 +61,13 @@ LL | Values { first: T, second: T }, | | | required by this field note: required by a bound in `require_send` - --> $DIR/non-send-field-location-issue-146016.rs:38:20 + --> $DIR/non-send-field-location-issue-146016.rs:39:20 | LL | fn require_send() {} | ^^^^ required by this bound in `require_send` error[E0277]: `*const c_void` cannot be sent between threads safely - --> $DIR/non-send-field-location-issue-146016.rs:55:27 + --> $DIR/non-send-field-location-issue-146016.rs:56:27 | LL | let h = thread::spawn(move || match rx.recv().unwrap() { | _____________-------------_^ @@ -81,7 +81,7 @@ LL | | }); | = help: within `Foo`, the trait `Send` is not implemented for `*const c_void` note: required because it appears within the type `Foo` - --> $DIR/non-send-field-location-issue-146016.rs:21:11 + --> $DIR/non-send-field-location-issue-146016.rs:22:11 | LL | enum Foo { LL | Case(i32), @@ -89,7 +89,7 @@ LL | Case2(Bar), | ^^^ required by this field = note: required for `std::sync::mpsc::Receiver` to implement `Send` note: required because `rx` is used within this closure - --> $DIR/non-send-field-location-issue-146016.rs:55:41 + --> $DIR/non-send-field-location-issue-146016.rs:56:41 | LL | let h = thread::spawn(move || match rx.recv().unwrap() { | ^^ diff --git a/tests/ui/traits/non-send-field-location-issue-146016.next.stderr b/tests/ui/traits/non-send-field-location-issue-146016.next.stderr index 5366c04cb537b..8ae10c22aa5ca 100644 --- a/tests/ui/traits/non-send-field-location-issue-146016.next.stderr +++ b/tests/ui/traits/non-send-field-location-issue-146016.next.stderr @@ -1,58 +1,58 @@ error[E0277]: `*const c_void` cannot be sent between threads safely - --> $DIR/non-send-field-location-issue-146016.rs:41:20 + --> $DIR/non-send-field-location-issue-146016.rs:42:20 | LL | require_send::>(); | ^^^^^^^^^^^ `*const c_void` cannot be sent between threads safely | = help: within `Record<*const c_void>`, the trait `Send` is not implemented for `*const c_void` note: required because it appears within the type `Record<*const c_void>` - --> $DIR/non-send-field-location-issue-146016.rs:26:5 + --> $DIR/non-send-field-location-issue-146016.rs:27:5 | LL | struct Record { LL | unrelated: u8, LL | value: T, | ^^^^^^^^ required by this field note: required by a bound in `require_send` - --> $DIR/non-send-field-location-issue-146016.rs:38:20 + --> $DIR/non-send-field-location-issue-146016.rs:39:20 | LL | fn require_send() {} | ^^^^ required by this bound in `require_send` error[E0277]: `*const c_void` cannot be sent between threads safely - --> $DIR/non-send-field-location-issue-146016.rs:43:20 + --> $DIR/non-send-field-location-issue-146016.rs:44:20 | LL | require_send::>(); | ^^^^^^^^^^^ `*const c_void` cannot be sent between threads safely | = help: within `Nested<*const c_void>`, the trait `Send` is not implemented for `*const c_void` note: required because it appears within the type `Record<*const c_void>` - --> $DIR/non-send-field-location-issue-146016.rs:26:5 + --> $DIR/non-send-field-location-issue-146016.rs:27:5 | LL | struct Record { LL | unrelated: u8, LL | value: T, | ^^^^^^^^ required by this field note: required because it appears within the type `Nested<*const c_void>` - --> $DIR/non-send-field-location-issue-146016.rs:30:5 + --> $DIR/non-send-field-location-issue-146016.rs:31:5 | LL | struct Nested { LL | value: Record, | ^^^^^^^^^^^^^^^^ required by this field note: required by a bound in `require_send` - --> $DIR/non-send-field-location-issue-146016.rs:38:20 + --> $DIR/non-send-field-location-issue-146016.rs:39:20 | LL | fn require_send() {} | ^^^^ required by this bound in `require_send` error[E0277]: `*const c_void` cannot be sent between threads safely - --> $DIR/non-send-field-location-issue-146016.rs:45:20 + --> $DIR/non-send-field-location-issue-146016.rs:46:20 | LL | require_send::>(); | ^^^^^^^^^^^^^ `*const c_void` cannot be sent between threads safely | = help: within `Multiple<*const c_void>`, the trait `Send` is not implemented for `*const c_void` note: required because it appears within the type `Multiple<*const c_void>` - --> $DIR/non-send-field-location-issue-146016.rs:35:14 + --> $DIR/non-send-field-location-issue-146016.rs:36:14 | LL | enum Multiple { LL | Empty, @@ -61,13 +61,13 @@ LL | Values { first: T, second: T }, | | | required by this field note: required by a bound in `require_send` - --> $DIR/non-send-field-location-issue-146016.rs:38:20 + --> $DIR/non-send-field-location-issue-146016.rs:39:20 | LL | fn require_send() {} | ^^^^ required by this bound in `require_send` error[E0277]: `*const c_void` cannot be sent between threads safely - --> $DIR/non-send-field-location-issue-146016.rs:55:27 + --> $DIR/non-send-field-location-issue-146016.rs:56:27 | LL | let h = thread::spawn(move || match rx.recv().unwrap() { | _____________-------------_^ @@ -81,7 +81,7 @@ LL | | }); | = help: within `Foo`, the trait `Send` is not implemented for `*const c_void` note: required because it appears within the type `Foo` - --> $DIR/non-send-field-location-issue-146016.rs:21:11 + --> $DIR/non-send-field-location-issue-146016.rs:22:11 | LL | enum Foo { LL | Case(i32), @@ -89,7 +89,7 @@ LL | Case2(Bar), | ^^^ required by this field = note: required for `std::sync::mpsc::Receiver` to implement `Send` note: required because `rx` is used within this closure - --> $DIR/non-send-field-location-issue-146016.rs:55:41 + --> $DIR/non-send-field-location-issue-146016.rs:56:41 | LL | let h = thread::spawn(move || match rx.recv().unwrap() { | ^^ diff --git a/tests/ui/traits/non-send-field-location-issue-146016.rs b/tests/ui/traits/non-send-field-location-issue-146016.rs index 9f9cd6a20e48b..09a475feb521c 100644 --- a/tests/ui/traits/non-send-field-location-issue-146016.rs +++ b/tests/ui/traits/non-send-field-location-issue-146016.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver //@ edition: 2024 diff --git a/tests/ui/traits/normalize/pointee-normalize-equate.rs b/tests/ui/traits/normalize/pointee-normalize-equate.rs index 3edb010a827b8..45bf1e8f3505a 100644 --- a/tests/ui/traits/normalize/pointee-normalize-equate.rs +++ b/tests/ui/traits/normalize/pointee-normalize-equate.rs @@ -1,5 +1,6 @@ //@ check-pass //@ revisions: old next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(ptr_metadata)] diff --git a/tests/ui/traits/trait-upcasting/illegal-upcast-to-impl-opaque.rs b/tests/ui/traits/trait-upcasting/illegal-upcast-to-impl-opaque.rs index f603ff1ec80ec..9e72bc104f8c4 100644 --- a/tests/ui/traits/trait-upcasting/illegal-upcast-to-impl-opaque.rs +++ b/tests/ui/traits/trait-upcasting/illegal-upcast-to-impl-opaque.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/type-alias-impl-trait/destructure_tait-ice-113594.rs b/tests/ui/type-alias-impl-trait/destructure_tait-ice-113594.rs index a42ea083d740c..4cd2ce55e31b3 100644 --- a/tests/ui/type-alias-impl-trait/destructure_tait-ice-113594.rs +++ b/tests/ui/type-alias-impl-trait/destructure_tait-ice-113594.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver //@ build-pass //@ edition: 2021 diff --git a/tests/ui/type-alias-impl-trait/lifetime_mismatch.current.stderr b/tests/ui/type-alias-impl-trait/lifetime_mismatch.current.stderr index 83ed7ae17902c..486566f6aacd5 100644 --- a/tests/ui/type-alias-impl-trait/lifetime_mismatch.current.stderr +++ b/tests/ui/type-alias-impl-trait/lifetime_mismatch.current.stderr @@ -1,5 +1,5 @@ error: opaque type used twice with different lifetimes - --> $DIR/lifetime_mismatch.rs:10:5 + --> $DIR/lifetime_mismatch.rs:11:5 | LL | (x, y) | ^^^^^^ @@ -8,13 +8,13 @@ LL | (x, y) | lifetime `'b` previously used here | note: if all non-lifetime generic parameters are the same, but the lifetime parameters differ, it is not possible to differentiate the opaque types - --> $DIR/lifetime_mismatch.rs:10:5 + --> $DIR/lifetime_mismatch.rs:11:5 | LL | (x, y) | ^^^^^^ error: opaque type used twice with different lifetimes - --> $DIR/lifetime_mismatch.rs:18:5 + --> $DIR/lifetime_mismatch.rs:19:5 | LL | (i, j) | ^^^^^^ @@ -23,7 +23,7 @@ LL | (i, j) | lifetime `'y` previously used here | note: if all non-lifetime generic parameters are the same, but the lifetime parameters differ, it is not possible to differentiate the opaque types - --> $DIR/lifetime_mismatch.rs:18:5 + --> $DIR/lifetime_mismatch.rs:19:5 | LL | (i, j) | ^^^^^^ diff --git a/tests/ui/type-alias-impl-trait/lifetime_mismatch.rs b/tests/ui/type-alias-impl-trait/lifetime_mismatch.rs index 4a8320e922a2e..4d5aa1f81654d 100644 --- a/tests/ui/type-alias-impl-trait/lifetime_mismatch.rs +++ b/tests/ui/type-alias-impl-trait/lifetime_mismatch.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver=globally //@[next] check-pass #![feature(type_alias_impl_trait)] diff --git a/tests/ui/type-alias-impl-trait/method_resolution.current.stderr b/tests/ui/type-alias-impl-trait/method_resolution.current.stderr index 660e4351d0cae..a2173972a224d 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution.current.stderr +++ b/tests/ui/type-alias-impl-trait/method_resolution.current.stderr @@ -1,5 +1,5 @@ error[E0599]: no method named `bar` found for struct `Bar` in the current scope - --> $DIR/method_resolution.rs:22:14 + --> $DIR/method_resolution.rs:23:14 | LL | struct Bar(T); | ------------- method `bar` not found for this struct diff --git a/tests/ui/type-alias-impl-trait/method_resolution.next.stderr b/tests/ui/type-alias-impl-trait/method_resolution.next.stderr index 660e4351d0cae..a2173972a224d 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution.next.stderr +++ b/tests/ui/type-alias-impl-trait/method_resolution.next.stderr @@ -1,5 +1,5 @@ error[E0599]: no method named `bar` found for struct `Bar` in the current scope - --> $DIR/method_resolution.rs:22:14 + --> $DIR/method_resolution.rs:23:14 | LL | struct Bar(T); | ------------- method `bar` not found for this struct diff --git a/tests/ui/type-alias-impl-trait/method_resolution.rs b/tests/ui/type-alias-impl-trait/method_resolution.rs index a9162d0e28bee..e4240337544f7 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution.rs +++ b/tests/ui/type-alias-impl-trait/method_resolution.rs @@ -2,6 +2,7 @@ //! `u32` is the hidden type of `Foo` to call `bar` //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(type_alias_impl_trait)] diff --git a/tests/ui/type-alias-impl-trait/method_resolution2.rs b/tests/ui/type-alias-impl-trait/method_resolution2.rs index a4c4bbbace6b2..c6ad2949a94ec 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution2.rs +++ b/tests/ui/type-alias-impl-trait/method_resolution2.rs @@ -2,6 +2,7 @@ //! `foo` method call can be resolved unambiguously by doing so. //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/type-alias-impl-trait/method_resolution3.current.stderr b/tests/ui/type-alias-impl-trait/method_resolution3.current.stderr index c6aa0e811f36c..4572f622892d9 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution3.current.stderr +++ b/tests/ui/type-alias-impl-trait/method_resolution3.current.stderr @@ -1,5 +1,5 @@ error[E0307]: invalid `self` parameter type: `Bar` - --> $DIR/method_resolution3.rs:16:18 + --> $DIR/method_resolution3.rs:17:18 | LL | fn bar(self: Bar) { | ^^^^^^^^ @@ -8,7 +8,7 @@ LL | fn bar(self: Bar) { = help: consider changing to `self`, `&self`, `&mut self`, or a type implementing `Receiver` such as `self: Box`, `self: Rc`, or `self: Arc` error[E0307]: invalid `self` parameter type: `&Bar` - --> $DIR/method_resolution3.rs:20:18 + --> $DIR/method_resolution3.rs:21:18 | LL | fn baz(self: &Bar) { | ^^^^^^^^^ diff --git a/tests/ui/type-alias-impl-trait/method_resolution3.next.stderr b/tests/ui/type-alias-impl-trait/method_resolution3.next.stderr index c6aa0e811f36c..4572f622892d9 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution3.next.stderr +++ b/tests/ui/type-alias-impl-trait/method_resolution3.next.stderr @@ -1,5 +1,5 @@ error[E0307]: invalid `self` parameter type: `Bar` - --> $DIR/method_resolution3.rs:16:18 + --> $DIR/method_resolution3.rs:17:18 | LL | fn bar(self: Bar) { | ^^^^^^^^ @@ -8,7 +8,7 @@ LL | fn bar(self: Bar) { = help: consider changing to `self`, `&self`, `&mut self`, or a type implementing `Receiver` such as `self: Box`, `self: Rc`, or `self: Arc` error[E0307]: invalid `self` parameter type: `&Bar` - --> $DIR/method_resolution3.rs:20:18 + --> $DIR/method_resolution3.rs:21:18 | LL | fn baz(self: &Bar) { | ^^^^^^^^^ diff --git a/tests/ui/type-alias-impl-trait/method_resolution3.rs b/tests/ui/type-alias-impl-trait/method_resolution3.rs index a18dcc9a2fe3a..00f7cd05d120d 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution3.rs +++ b/tests/ui/type-alias-impl-trait/method_resolution3.rs @@ -3,6 +3,7 @@ //! type, registering the generic parameter as the hidden type of the opaque type. //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(type_alias_impl_trait, arbitrary_self_types)] diff --git a/tests/ui/type-alias-impl-trait/method_resolution4.current.stderr b/tests/ui/type-alias-impl-trait/method_resolution4.current.stderr index 569a9f49bbe4b..3cd72a66706e1 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution4.current.stderr +++ b/tests/ui/type-alias-impl-trait/method_resolution4.current.stderr @@ -1,5 +1,5 @@ error[E0307]: invalid `self` parameter type: `Bar` - --> $DIR/method_resolution4.rs:25:18 + --> $DIR/method_resolution4.rs:26:18 | LL | fn foo(self: Bar) { | ^^^^^^^^ @@ -8,7 +8,7 @@ LL | fn foo(self: Bar) { = help: consider changing to `self`, `&self`, `&mut self`, or a type implementing `Receiver` such as `self: Box`, `self: Rc`, or `self: Arc` error[E0307]: invalid `self` parameter type: `&Bar` - --> $DIR/method_resolution4.rs:29:20 + --> $DIR/method_resolution4.rs:30:20 | LL | fn foomp(self: &Bar) { | ^^^^^^^^^ diff --git a/tests/ui/type-alias-impl-trait/method_resolution4.next.stderr b/tests/ui/type-alias-impl-trait/method_resolution4.next.stderr index 569a9f49bbe4b..3cd72a66706e1 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution4.next.stderr +++ b/tests/ui/type-alias-impl-trait/method_resolution4.next.stderr @@ -1,5 +1,5 @@ error[E0307]: invalid `self` parameter type: `Bar` - --> $DIR/method_resolution4.rs:25:18 + --> $DIR/method_resolution4.rs:26:18 | LL | fn foo(self: Bar) { | ^^^^^^^^ @@ -8,7 +8,7 @@ LL | fn foo(self: Bar) { = help: consider changing to `self`, `&self`, `&mut self`, or a type implementing `Receiver` such as `self: Box`, `self: Rc`, or `self: Arc` error[E0307]: invalid `self` parameter type: `&Bar` - --> $DIR/method_resolution4.rs:29:20 + --> $DIR/method_resolution4.rs:30:20 | LL | fn foomp(self: &Bar) { | ^^^^^^^^^ diff --git a/tests/ui/type-alias-impl-trait/method_resolution4.rs b/tests/ui/type-alias-impl-trait/method_resolution4.rs index 8a1b60b0c6e3a..debe79730ffb8 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution4.rs +++ b/tests/ui/type-alias-impl-trait/method_resolution4.rs @@ -3,6 +3,7 @@ //! type, registering the generic parameter as the hidden type of the opaque type. //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(type_alias_impl_trait, arbitrary_self_types)] diff --git a/tests/ui/type-alias-impl-trait/method_resolution5.rs b/tests/ui/type-alias-impl-trait/method_resolution5.rs index b22c44ceb138a..c89e7d8bf6d30 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution5.rs +++ b/tests/ui/type-alias-impl-trait/method_resolution5.rs @@ -2,6 +2,7 @@ //! not figure out that `u32` is the hidden type of `Foo` to call `bar`. //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.current.stderr b/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.current.stderr index 841aa12f98309..89500d4fbad23 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.current.stderr +++ b/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.current.stderr @@ -1,12 +1,12 @@ error: item does not constrain `Tait::{opaque#0}` - --> $DIR/method_resolution_trait_method_from_opaque.rs:26:8 + --> $DIR/method_resolution_trait_method_from_opaque.rs:27:8 | LL | fn foo(&mut self) { | ^^^ | = note: consider removing `#[define_opaque]` or adding an empty `#[define_opaque()]` note: this opaque type is supposed to be constrained - --> $DIR/method_resolution_trait_method_from_opaque.rs:17:13 + --> $DIR/method_resolution_trait_method_from_opaque.rs:18:13 | LL | type Tait = impl Iterator; | ^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.next.stderr b/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.next.stderr index 0c1e6a997ffec..a2e5b3cc972ef 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.next.stderr +++ b/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.next.stderr @@ -1,5 +1,5 @@ error[E0282]: type annotations needed - --> $DIR/method_resolution_trait_method_from_opaque.rs:28:18 + --> $DIR/method_resolution_trait_method_from_opaque.rs:29:18 | LL | self.bar.next().unwrap(); | ^^^^ diff --git a/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.rs b/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.rs index 93461fcbb0b2a..28cde4eb64027 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.rs +++ b/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.rs @@ -6,6 +6,7 @@ //! won't also be the ones defining the hidden type. //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(type_alias_impl_trait)] diff --git a/tests/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-lifetimes.current.stderr b/tests/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-lifetimes.current.stderr index fb67f6ffa44e4..88c2a8a575cab 100644 --- a/tests/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-lifetimes.current.stderr +++ b/tests/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-lifetimes.current.stderr @@ -1,5 +1,5 @@ error: opaque type used twice with different lifetimes - --> $DIR/multiple-def-uses-in-one-fn-lifetimes.rs:10:5 + --> $DIR/multiple-def-uses-in-one-fn-lifetimes.rs:11:5 | LL | (i, j) | ^^^^^^ @@ -8,7 +8,7 @@ LL | (i, j) | lifetime `'y` previously used here | note: if all non-lifetime generic parameters are the same, but the lifetime parameters differ, it is not possible to differentiate the opaque types - --> $DIR/multiple-def-uses-in-one-fn-lifetimes.rs:10:5 + --> $DIR/multiple-def-uses-in-one-fn-lifetimes.rs:11:5 | LL | (i, j) | ^^^^^^ diff --git a/tests/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-lifetimes.rs b/tests/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-lifetimes.rs index f1c0bc190108b..fd74d7009fff8 100644 --- a/tests/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-lifetimes.rs +++ b/tests/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-lifetimes.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver=globally //@[next] check-pass #![feature(type_alias_impl_trait)] diff --git a/tests/ui/type-alias-impl-trait/mututally-recursive-overflow.rs b/tests/ui/type-alias-impl-trait/mututally-recursive-overflow.rs index 1e42021b806d3..4c39f4e2e5a22 100644 --- a/tests/ui/type-alias-impl-trait/mututally-recursive-overflow.rs +++ b/tests/ui/type-alias-impl-trait/mututally-recursive-overflow.rs @@ -1,9 +1,10 @@ //@ revisions: next old +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ edition: 2021 //@ build-fail -//[old]~^^^^ ERROR overflow evaluating the requirement `<() as B>::Assoc == _` -//[next]~^^^^^ ERROR: overflow evaluating the requirement `<() as A>::Assoc::{opaque#0} == _` +//[old]~^^^^^ ERROR overflow evaluating the requirement `<() as B>::Assoc == _` +//[next]~^^^^^^ ERROR: overflow evaluating the requirement `<() as A>::Assoc::{opaque#0} == _` #![feature(rustc_attrs)] #![feature(impl_trait_in_assoc_type)] diff --git a/tests/ui/type-alias-impl-trait/precise-capture-155151.current.stderr b/tests/ui/type-alias-impl-trait/precise-capture-155151.current.stderr index 972bf142db671..6d5307508b7a0 100644 --- a/tests/ui/type-alias-impl-trait/precise-capture-155151.current.stderr +++ b/tests/ui/type-alias-impl-trait/precise-capture-155151.current.stderr @@ -1,5 +1,5 @@ error[E0381]: used binding `x` isn't initialized - --> $DIR/precise-capture-155151.rs:20:18 + --> $DIR/precise-capture-155151.rs:21:18 | LL | let Foo { x } = foo; | - binding declared here but left uninitialized diff --git a/tests/ui/type-alias-impl-trait/precise-capture-155151.rs b/tests/ui/type-alias-impl-trait/precise-capture-155151.rs index b470c9373e93a..b535073c7c6aa 100644 --- a/tests/ui/type-alias-impl-trait/precise-capture-155151.rs +++ b/tests/ui/type-alias-impl-trait/precise-capture-155151.rs @@ -1,5 +1,6 @@ #![feature(type_alias_impl_trait)] //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ edition: 2021 //@[current] known-bug: #155151 //@[current] check-fail diff --git a/tests/ui/type-alias-impl-trait/tait-normalize.rs b/tests/ui/type-alias-impl-trait/tait-normalize.rs index f90520d3c5cd1..053c25b6f72db 100644 --- a/tests/ui/type-alias-impl-trait/tait-normalize.rs +++ b/tests/ui/type-alias-impl-trait/tait-normalize.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [next] compile-flags: -Znext-solver //@ check-pass diff --git a/tests/ui/type-alias-impl-trait/wf-in-associated-type.fail.stderr b/tests/ui/type-alias-impl-trait/wf-in-associated-type.fail.stderr index 34648a420ac51..3fd1666214654 100644 --- a/tests/ui/type-alias-impl-trait/wf-in-associated-type.fail.stderr +++ b/tests/ui/type-alias-impl-trait/wf-in-associated-type.fail.stderr @@ -1,5 +1,5 @@ error[E0309]: the parameter type `T` may not live long enough - --> $DIR/wf-in-associated-type.rs:40:13 + --> $DIR/wf-in-associated-type.rs:41:13 | LL | impl<'a, T> Trait<'a, T> for () { | -- the parameter type `T` must be valid for the lifetime `'a` as defined here... @@ -8,7 +8,7 @@ LL | req | ^^^ ...so that the type `&'a T` will meet its required lifetime bounds... | note: ...that is required by this bound - --> $DIR/wf-in-associated-type.rs:38:36 + --> $DIR/wf-in-associated-type.rs:39:36 | LL | type Opaque = impl Sized + 'a; | ^^ @@ -18,7 +18,7 @@ LL | impl<'a, T: 'a> Trait<'a, T> for () { | ++++ error[E0309]: the parameter type `T` may not live long enough - --> $DIR/wf-in-associated-type.rs:40:13 + --> $DIR/wf-in-associated-type.rs:41:13 | LL | impl<'a, T> Trait<'a, T> for () { | -- the parameter type `T` must be valid for the lifetime `'a` as defined here... diff --git a/tests/ui/type-alias-impl-trait/wf-in-associated-type.rs b/tests/ui/type-alias-impl-trait/wf-in-associated-type.rs index e548609e89a46..3982e494153ed 100644 --- a/tests/ui/type-alias-impl-trait/wf-in-associated-type.rs +++ b/tests/ui/type-alias-impl-trait/wf-in-associated-type.rs @@ -1,6 +1,7 @@ // WF check for impl Trait in associated type position. // //@ revisions: pass pass_next fail +//@ ignore-compare-mode-next-solver (explicit revisions) //@ [pass] check-pass //@ [pass_next] compile-flags: -Znext-solver //@ [pass_next] check-pass diff --git a/tests/ui/typeck/issue-116864.current.stderr b/tests/ui/typeck/issue-116864.current.stderr index ae38a6d3439de..7337bf56a6b9d 100644 --- a/tests/ui/typeck/issue-116864.current.stderr +++ b/tests/ui/typeck/issue-116864.current.stderr @@ -1,5 +1,5 @@ error[E0277]: expected an `FnMut(&'any i32)` closure, found `impl for<'any> FnMutFut<&'any BAZ::Param, ()>` - --> $DIR/issue-116864.rs:28:1 + --> $DIR/issue-116864.rs:29:1 | LL | / async fn foo(_: BAZ, mut cb: impl for<'any> FnMutFut<&'any BAZ::Param, ()>) LL | | @@ -11,7 +11,7 @@ LL | | BAZ: Baz, = note: expected a closure with signature `for<'any> fn(&'any i32)` found a closure with signature `fn(&::Param)` note: required for `impl for<'any> FnMutFut<&'any BAZ::Param, ()>` to implement `for<'any> FnMutFut<&'any i32, ()>` - --> $DIR/issue-116864.rs:20:20 + --> $DIR/issue-116864.rs:21:20 | LL | impl FnMutFut for F | ^^^^^^^^^^^^^^ ^ diff --git a/tests/ui/typeck/issue-116864.next.stderr b/tests/ui/typeck/issue-116864.next.stderr index c53410b1a1ec6..1a04243c2f6ba 100644 --- a/tests/ui/typeck/issue-116864.next.stderr +++ b/tests/ui/typeck/issue-116864.next.stderr @@ -1,5 +1,5 @@ error[E0277]: expected an `FnOnce(&'any i32)` closure, found `impl for<'any> FnMutFut<&'any BAZ::Param, ()>` - --> $DIR/issue-116864.rs:28:1 + --> $DIR/issue-116864.rs:29:1 | LL | / async fn foo(_: BAZ, mut cb: impl for<'any> FnMutFut<&'any BAZ::Param, ()>) LL | | @@ -11,7 +11,7 @@ LL | | BAZ: Baz, = note: expected a closure with signature `for<'any> fn(&'any i32)` found a closure with signature `fn(&::Param)` note: required for `impl for<'any> FnMutFut<&'any BAZ::Param, ()>` to implement `for<'any> FnMutFut<&'any i32, ()>` - --> $DIR/issue-116864.rs:20:20 + --> $DIR/issue-116864.rs:21:20 | LL | impl FnMutFut for F | ^^^^^^^^^^^^^^ ^ diff --git a/tests/ui/typeck/issue-116864.rs b/tests/ui/typeck/issue-116864.rs index 427afe1784e92..a16731174b2be 100644 --- a/tests/ui/typeck/issue-116864.rs +++ b/tests/ui/typeck/issue-116864.rs @@ -1,4 +1,5 @@ //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ edition: 2021 diff --git a/tests/ui/unsafe-fields/auto-traits.current.stderr b/tests/ui/unsafe-fields/auto-traits.current.stderr index 2483556b13918..d2ce00f543aac 100644 --- a/tests/ui/unsafe-fields/auto-traits.current.stderr +++ b/tests/ui/unsafe-fields/auto-traits.current.stderr @@ -1,5 +1,5 @@ error[E0277]: the trait bound `UnsafeEnum: UnsafeAuto` is not satisfied - --> $DIR/auto-traits.rs:24:22 + --> $DIR/auto-traits.rs:25:22 | LL | impl_unsafe_auto(UnsafeEnum::Safe(42)); | ---------------- ^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound @@ -7,12 +7,12 @@ LL | impl_unsafe_auto(UnsafeEnum::Safe(42)); | required by a bound introduced by this call | help: the trait `UnsafeAuto` is not implemented for `UnsafeEnum` - --> $DIR/auto-traits.rs:9:1 + --> $DIR/auto-traits.rs:10:1 | LL | enum UnsafeEnum { | ^^^^^^^^^^^^^^^ note: required by a bound in `impl_unsafe_auto` - --> $DIR/auto-traits.rs:20:29 + --> $DIR/auto-traits.rs:21:29 | LL | fn impl_unsafe_auto(_: impl UnsafeAuto) {} | ^^^^^^^^^^ required by this bound in `impl_unsafe_auto` diff --git a/tests/ui/unsafe-fields/auto-traits.next.stderr b/tests/ui/unsafe-fields/auto-traits.next.stderr index 2483556b13918..d2ce00f543aac 100644 --- a/tests/ui/unsafe-fields/auto-traits.next.stderr +++ b/tests/ui/unsafe-fields/auto-traits.next.stderr @@ -1,5 +1,5 @@ error[E0277]: the trait bound `UnsafeEnum: UnsafeAuto` is not satisfied - --> $DIR/auto-traits.rs:24:22 + --> $DIR/auto-traits.rs:25:22 | LL | impl_unsafe_auto(UnsafeEnum::Safe(42)); | ---------------- ^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound @@ -7,12 +7,12 @@ LL | impl_unsafe_auto(UnsafeEnum::Safe(42)); | required by a bound introduced by this call | help: the trait `UnsafeAuto` is not implemented for `UnsafeEnum` - --> $DIR/auto-traits.rs:9:1 + --> $DIR/auto-traits.rs:10:1 | LL | enum UnsafeEnum { | ^^^^^^^^^^^^^^^ note: required by a bound in `impl_unsafe_auto` - --> $DIR/auto-traits.rs:20:29 + --> $DIR/auto-traits.rs:21:29 | LL | fn impl_unsafe_auto(_: impl UnsafeAuto) {} | ^^^^^^^^^^ required by this bound in `impl_unsafe_auto` diff --git a/tests/ui/unsafe-fields/auto-traits.rs b/tests/ui/unsafe-fields/auto-traits.rs index e15d0000079ef..ad292da530bd0 100644 --- a/tests/ui/unsafe-fields/auto-traits.rs +++ b/tests/ui/unsafe-fields/auto-traits.rs @@ -1,5 +1,6 @@ //@ compile-flags: --crate-type=lib //@ revisions: current next +//@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver #![feature(auto_traits)] From 8111cca7bc46af778c38cd56938cbe34d151b139 Mon Sep 17 00:00:00 2001 From: AMS21 Date: Sat, 3 Oct 2026 10:33:10 +0200 Subject: [PATCH 10/10] refactor: migrate to LLVM-C's `LLVMGetOrInsertFunction` --- compiler/rustc_codegen_llvm/src/declare.rs | 5 ++--- compiler/rustc_codegen_llvm/src/llvm/ffi.rs | 13 ++++++------- compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp | 10 ---------- 3 files changed, 8 insertions(+), 20 deletions(-) diff --git a/compiler/rustc_codegen_llvm/src/declare.rs b/compiler/rustc_codegen_llvm/src/declare.rs index 3511056f79306..23f9fc93a4ba4 100644 --- a/compiler/rustc_codegen_llvm/src/declare.rs +++ b/compiler/rustc_codegen_llvm/src/declare.rs @@ -43,9 +43,8 @@ pub(crate) fn declare_simple_fn<'ll>( ty: &'ll Type, ) -> &'ll Value { debug!("declare_simple_fn(name={:?}, ty={:?})", name, ty); - let llfn = unsafe { - llvm::LLVMRustGetOrInsertFunction(cx.llmod, name.as_c_char_ptr(), name.len(), ty) - }; + let llfn = + unsafe { llvm::LLVMGetOrInsertFunction(cx.llmod, name.as_c_char_ptr(), name.len(), ty) }; llvm::SetFunctionCallConv(llfn, callconv); llvm::set_unnamed_address(llfn, unnamed); diff --git a/compiler/rustc_codegen_llvm/src/llvm/ffi.rs b/compiler/rustc_codegen_llvm/src/llvm/ffi.rs index eca5fe429f541..4c7d60a0cbf67 100644 --- a/compiler/rustc_codegen_llvm/src/llvm/ffi.rs +++ b/compiler/rustc_codegen_llvm/src/llvm/ffi.rs @@ -1125,6 +1125,12 @@ unsafe extern "C" { FunctionTy: &'a Type, ) -> &'a Value; pub(crate) fn LLVMDeleteFunction(Fn: &Value); + pub(crate) fn LLVMGetOrInsertFunction<'a>( + M: &'a Module, + Name: *const c_char, + NameLen: size_t, + FunctionTy: &'a Type, + ) -> &'a Value; // Operations about llvm intrinsics pub(crate) fn LLVMLookupIntrinsicID(Name: *const c_char, NameLen: size_t) -> c_uint; @@ -2033,13 +2039,6 @@ unsafe extern "C" { ) -> &Attribute; // Operations on functions - /// FIXME: After dropping LLVM 21, migrate to LLVM-C's `LLVMGetOrInsertFunction`. - pub(crate) fn LLVMRustGetOrInsertFunction<'a>( - M: &'a Module, - Name: *const c_char, - NameLen: size_t, - FunctionTy: &'a Type, - ) -> &'a Value; pub(crate) fn LLVMRustAddFunctionAttributes<'a>( Fn: &'a Value, index: c_uint, diff --git a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp index bc8fa60b66a52..6a34383b25be5 100644 --- a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp +++ b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp @@ -195,16 +195,6 @@ LLVMRustVerifyFunction(LLVMValueRef Fn, LLVMRustVerifierFailureAction Action) { return LLVMVerifyFunction(Fn, fromRust(Action)); } -extern "C" LLVMValueRef LLVMRustGetOrInsertFunction(LLVMModuleRef M, - const char *Name, - size_t NameLen, - LLVMTypeRef FunctionTy) { - return wrap(unwrap(M) - ->getOrInsertFunction(StringRef(Name, NameLen), - unwrap(FunctionTy)) - .getCallee()); -} - // Get the global variable with the given name if it exists or create a new // external global. extern "C" LLVMValueRef