From 941a17a15a51d28bfa1871358935a27f73c3f26e Mon Sep 17 00:00:00 2001 From: reddevilmidzy Date: Wed, 26 Nov 2025 21:38:42 +0900 Subject: [PATCH] Relocate 5 tests from tests/ui/issues Relocate issues/issue-51154.rs to closures/box-generic-closure.rs Relocate issues/issue-51515.rs to borrowck/assignment-to-immutable-ref.rs Relocate issues/issue-53348.rs to mismatched_types/deref-string-assign.rs Relocate issues/issue-52717.rs to pattern/match-enum-struct-variant-field-missing.rs Relocate issues/issue-53300.rs to type/cannot-find-wrapper-with-impl-trait.rs --- .../assignment-to-immutable-ref.rs} | 4 ++++ .../assignment-to-immutable-ref.stderr} | 4 ++-- tests/ui/closures/box-generic-closure.rs | 10 ++++++++++ .../box-generic-closure.stderr} | 4 ++-- tests/ui/issues/issue-51154.rs | 6 ------ tests/ui/issues/issue-52717.rs | 13 ------------- tests/ui/issues/issue-52717.stderr | 12 ------------ .../assign-deref-string-to-string.rs} | 6 +++++- .../assign-deref-string-to-string.stderr} | 2 +- .../match-enum-struct-variant-field-missing.rs | 17 +++++++++++++++++ ...tch-enum-struct-variant-field-missing.stderr | 12 ++++++++++++ .../cannot-find-wrapper-with-impl-trait.rs} | 3 ++- .../cannot-find-wrapper-with-impl-trait.stderr} | 2 +- 13 files changed, 56 insertions(+), 39 deletions(-) rename tests/ui/{issues/issue-51515.rs => borrowck/assignment-to-immutable-ref.rs} (59%) rename tests/ui/{issues/issue-51515.stderr => borrowck/assignment-to-immutable-ref.stderr} (88%) create mode 100644 tests/ui/closures/box-generic-closure.rs rename tests/ui/{issues/issue-51154.stderr => closures/box-generic-closure.stderr} (84%) delete mode 100644 tests/ui/issues/issue-51154.rs delete mode 100644 tests/ui/issues/issue-52717.rs delete mode 100644 tests/ui/issues/issue-52717.stderr rename tests/ui/{issues/issue-53348.rs => mismatched_types/assign-deref-string-to-string.rs} (52%) rename tests/ui/{issues/issue-53348.stderr => mismatched_types/assign-deref-string-to-string.stderr} (87%) create mode 100644 tests/ui/pattern/match-enum-struct-variant-field-missing.rs create mode 100644 tests/ui/pattern/match-enum-struct-variant-field-missing.stderr rename tests/ui/{issues/issue-53300.rs => type/cannot-find-wrapper-with-impl-trait.rs} (53%) rename tests/ui/{issues/issue-53300.stderr => type/cannot-find-wrapper-with-impl-trait.stderr} (82%) diff --git a/tests/ui/issues/issue-51515.rs b/tests/ui/borrowck/assignment-to-immutable-ref.rs similarity index 59% rename from tests/ui/issues/issue-51515.rs rename to tests/ui/borrowck/assignment-to-immutable-ref.rs index 33a9bf85e23ea..c04c26f6ea2e7 100644 --- a/tests/ui/issues/issue-51515.rs +++ b/tests/ui/borrowck/assignment-to-immutable-ref.rs @@ -1,3 +1,7 @@ +//! Regression test for issue +//! Test that assigning through an immutable reference (`&`) correctly yields +//! an assignment error (E0594) and suggests using a mutable reference. + fn main() { let foo = &16; //~^ HELP consider changing this to be a mutable reference diff --git a/tests/ui/issues/issue-51515.stderr b/tests/ui/borrowck/assignment-to-immutable-ref.stderr similarity index 88% rename from tests/ui/issues/issue-51515.stderr rename to tests/ui/borrowck/assignment-to-immutable-ref.stderr index 5bf33b191c0eb..ec1be1acce0aa 100644 --- a/tests/ui/issues/issue-51515.stderr +++ b/tests/ui/borrowck/assignment-to-immutable-ref.stderr @@ -1,5 +1,5 @@ error[E0594]: cannot assign to `*foo`, which is behind a `&` reference - --> $DIR/issue-51515.rs:4:5 + --> $DIR/assignment-to-immutable-ref.rs:8:5 | LL | *foo = 32; | ^^^^^^^^^ `foo` is a `&` reference, so it cannot be written to @@ -10,7 +10,7 @@ LL | let foo = &mut 16; | +++ error[E0594]: cannot assign to `*bar`, which is behind a `&` reference - --> $DIR/issue-51515.rs:8:5 + --> $DIR/assignment-to-immutable-ref.rs:12:5 | LL | *bar = 64; | ^^^^^^^^^ `bar` is a `&` reference, so it cannot be written to diff --git a/tests/ui/closures/box-generic-closure.rs b/tests/ui/closures/box-generic-closure.rs new file mode 100644 index 0000000000000..e526cf0012d6f --- /dev/null +++ b/tests/ui/closures/box-generic-closure.rs @@ -0,0 +1,10 @@ +//! Regression test for issue +//! Test that anonymous closure types cannot be coerced to a generic type +//! parameter (F: FnMut()) when trying to box them. + +fn foo() { + let _: Box = Box::new(|| ()); + //~^ ERROR mismatched types +} + +fn main() {} diff --git a/tests/ui/issues/issue-51154.stderr b/tests/ui/closures/box-generic-closure.stderr similarity index 84% rename from tests/ui/issues/issue-51154.stderr rename to tests/ui/closures/box-generic-closure.stderr index b7451ea28ee97..9b74a196c3ad4 100644 --- a/tests/ui/issues/issue-51154.stderr +++ b/tests/ui/closures/box-generic-closure.stderr @@ -1,5 +1,5 @@ error[E0308]: mismatched types - --> $DIR/issue-51154.rs:2:30 + --> $DIR/box-generic-closure.rs:6:30 | LL | fn foo() { | - expected this type parameter @@ -9,7 +9,7 @@ LL | let _: Box = Box::new(|| ()); | arguments to this function are incorrect | = note: expected type parameter `F` - found closure `{closure@$DIR/issue-51154.rs:2:30: 2:32}` + found closure `{closure@$DIR/box-generic-closure.rs:6:30: 6:32}` = help: every closure has a distinct type and so could not always match the caller-chosen type of parameter `F` note: associated function defined here --> $SRC_DIR/alloc/src/boxed.rs:LL:COL diff --git a/tests/ui/issues/issue-51154.rs b/tests/ui/issues/issue-51154.rs deleted file mode 100644 index 12903f79010cb..0000000000000 --- a/tests/ui/issues/issue-51154.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn foo() { - let _: Box = Box::new(|| ()); - //~^ ERROR mismatched types -} - -fn main() {} diff --git a/tests/ui/issues/issue-52717.rs b/tests/ui/issues/issue-52717.rs deleted file mode 100644 index f83232a4a2689..0000000000000 --- a/tests/ui/issues/issue-52717.rs +++ /dev/null @@ -1,13 +0,0 @@ -enum A { - A { - foo: usize, - } -} - -fn main() { - let x = A::A { foo: 3 }; - match x { - A::A { fob } => { println!("{}", fob); } -//~^ ERROR does not have a field named `fob` - } -} diff --git a/tests/ui/issues/issue-52717.stderr b/tests/ui/issues/issue-52717.stderr deleted file mode 100644 index ab8c37225cae6..0000000000000 --- a/tests/ui/issues/issue-52717.stderr +++ /dev/null @@ -1,12 +0,0 @@ -error[E0026]: variant `A::A` does not have a field named `fob` - --> $DIR/issue-52717.rs:10:12 - | -LL | A::A { fob } => { println!("{}", fob); } - | ^^^ - | | - | variant `A::A` does not have this field - | help: a field with a similar name exists: `foo` - -error: aborting due to 1 previous error - -For more information about this error, try `rustc --explain E0026`. diff --git a/tests/ui/issues/issue-53348.rs b/tests/ui/mismatched_types/assign-deref-string-to-string.rs similarity index 52% rename from tests/ui/issues/issue-53348.rs rename to tests/ui/mismatched_types/assign-deref-string-to-string.rs index 66800d9e92961..82498a6e63e21 100644 --- a/tests/ui/issues/issue-53348.rs +++ b/tests/ui/mismatched_types/assign-deref-string-to-string.rs @@ -1,9 +1,13 @@ +//! Regression test for issue https://github.com/rust-lang/rust/issues/53348 +//! Test that attempting to assign a dereferenced `String` (which is `str`) +//! to a `String` variable correctly results in a mismatched types error (E0308). + fn main() { let mut v = vec!["hello", "this", "is", "a", "test"]; let v2 = Vec::new(); - v.into_iter().map(|s|s.to_owned()).collect::>(); + v.into_iter().map(|s| s.to_owned()).collect::>(); let mut a = String::new(); //~ NOTE expected due to this value for i in v { diff --git a/tests/ui/issues/issue-53348.stderr b/tests/ui/mismatched_types/assign-deref-string-to-string.stderr similarity index 87% rename from tests/ui/issues/issue-53348.stderr rename to tests/ui/mismatched_types/assign-deref-string-to-string.stderr index 38fa98e65e138..8cc3cb6b9bef0 100644 --- a/tests/ui/issues/issue-53348.stderr +++ b/tests/ui/mismatched_types/assign-deref-string-to-string.stderr @@ -1,5 +1,5 @@ error[E0308]: mismatched types - --> $DIR/issue-53348.rs:10:13 + --> $DIR/assign-deref-string-to-string.rs:14:13 | LL | let mut a = String::new(); | ------------- expected due to this value diff --git a/tests/ui/pattern/match-enum-struct-variant-field-missing.rs b/tests/ui/pattern/match-enum-struct-variant-field-missing.rs new file mode 100644 index 0000000000000..0a281b0efe052 --- /dev/null +++ b/tests/ui/pattern/match-enum-struct-variant-field-missing.rs @@ -0,0 +1,17 @@ +//! Regression test for issue +//! Test that matching an enum struct variant with a missing or incorrect field name +//! correctly yields a "does not have a field named" error. + +enum A { + A { foo: usize }, +} + +fn main() { + let x = A::A { foo: 3 }; + match x { + A::A { fob } => { + //~^ ERROR does not have a field named `fob` + println!("{fob}"); + } + } +} diff --git a/tests/ui/pattern/match-enum-struct-variant-field-missing.stderr b/tests/ui/pattern/match-enum-struct-variant-field-missing.stderr new file mode 100644 index 0000000000000..326595a7cb706 --- /dev/null +++ b/tests/ui/pattern/match-enum-struct-variant-field-missing.stderr @@ -0,0 +1,12 @@ +error[E0026]: variant `A::A` does not have a field named `fob` + --> $DIR/match-enum-struct-variant-field-missing.rs:12:16 + | +LL | A::A { fob } => { + | ^^^ + | | + | variant `A::A` does not have this field + | help: a field with a similar name exists: `foo` + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0026`. diff --git a/tests/ui/issues/issue-53300.rs b/tests/ui/type/cannot-find-wrapper-with-impl-trait.rs similarity index 53% rename from tests/ui/issues/issue-53300.rs rename to tests/ui/type/cannot-find-wrapper-with-impl-trait.rs index 09f0fe9d93553..48ff4c38f7db3 100644 --- a/tests/ui/issues/issue-53300.rs +++ b/tests/ui/type/cannot-find-wrapper-with-impl-trait.rs @@ -1,4 +1,5 @@ -// issue 53300 +//! Regression test for issue +//! Tests that an undefined type (Wrapper) used with impl Trait correctly gives E0412. pub trait A { fn add(&self, b: i32) -> i32; diff --git a/tests/ui/issues/issue-53300.stderr b/tests/ui/type/cannot-find-wrapper-with-impl-trait.stderr similarity index 82% rename from tests/ui/issues/issue-53300.stderr rename to tests/ui/type/cannot-find-wrapper-with-impl-trait.stderr index 293465ecb8140..ac7f2e5134a2c 100644 --- a/tests/ui/issues/issue-53300.stderr +++ b/tests/ui/type/cannot-find-wrapper-with-impl-trait.stderr @@ -1,5 +1,5 @@ error[E0412]: cannot find type `Wrapper` in this scope - --> $DIR/issue-53300.rs:7:18 + --> $DIR/cannot-find-wrapper-with-impl-trait.rs:8:18 | LL | fn addition() -> Wrapper {} | ^^^^^^^ not found in this scope