From 7f2e37fc5cdca01d4e140921f59fad398862606d Mon Sep 17 00:00:00 2001 From: Kivooeo Date: Tue, 1 Jul 2025 02:07:53 +0500 Subject: [PATCH 1/2] moved & deleted tests opeq.rs was removed as duplicating test logic in other tests --- .../compound-assign-by-ref.rs} | 0 .../fnonce-call-twice-error.rs} | 0 .../fnonce-call-twice-error.stderr} | 0 tests/ui/opeq.rs | 17 ----------------- .../oom-panic-unwind.rs} | 0 .../copy-requires-all-fields-copy.rs} | 0 .../copy-requires-all-fields-copy.stderr} | 0 .../direct-self-reference-occurs-check.rs} | 0 .../direct-self-reference-occurs-check.stderr} | 0 .../enum-self-reference-occurs-check.rs} | 0 .../enum-self-reference-occurs-check.stderr} | 0 .../infinite-type-occurs-check.rs} | 0 .../infinite-type-occurs-check.stderr} | 0 13 files changed, 17 deletions(-) rename tests/ui/{op-assign-builtins-by-ref.rs => binop/compound-assign-by-ref.rs} (100%) rename tests/ui/{once-cant-call-twice-on-heap.rs => closures/fnonce-call-twice-error.rs} (100%) rename tests/ui/{once-cant-call-twice-on-heap.stderr => closures/fnonce-call-twice-error.stderr} (100%) delete mode 100644 tests/ui/opeq.rs rename tests/ui/{oom_unwind.rs => panics/oom-panic-unwind.rs} (100%) rename tests/ui/{opt-in-copy.rs => traits/copy-requires-all-fields-copy.rs} (100%) rename tests/ui/{opt-in-copy.stderr => traits/copy-requires-all-fields-copy.stderr} (100%) rename tests/ui/{occurs-check.rs => type-inference/direct-self-reference-occurs-check.rs} (100%) rename tests/ui/{occurs-check.stderr => type-inference/direct-self-reference-occurs-check.stderr} (100%) rename tests/ui/{occurs-check-3.rs => type-inference/enum-self-reference-occurs-check.rs} (100%) rename tests/ui/{occurs-check-3.stderr => type-inference/enum-self-reference-occurs-check.stderr} (100%) rename tests/ui/{occurs-check-2.rs => type-inference/infinite-type-occurs-check.rs} (100%) rename tests/ui/{occurs-check-2.stderr => type-inference/infinite-type-occurs-check.stderr} (100%) diff --git a/tests/ui/op-assign-builtins-by-ref.rs b/tests/ui/binop/compound-assign-by-ref.rs similarity index 100% rename from tests/ui/op-assign-builtins-by-ref.rs rename to tests/ui/binop/compound-assign-by-ref.rs diff --git a/tests/ui/once-cant-call-twice-on-heap.rs b/tests/ui/closures/fnonce-call-twice-error.rs similarity index 100% rename from tests/ui/once-cant-call-twice-on-heap.rs rename to tests/ui/closures/fnonce-call-twice-error.rs diff --git a/tests/ui/once-cant-call-twice-on-heap.stderr b/tests/ui/closures/fnonce-call-twice-error.stderr similarity index 100% rename from tests/ui/once-cant-call-twice-on-heap.stderr rename to tests/ui/closures/fnonce-call-twice-error.stderr diff --git a/tests/ui/opeq.rs b/tests/ui/opeq.rs deleted file mode 100644 index 956ea0684fa70..0000000000000 --- a/tests/ui/opeq.rs +++ /dev/null @@ -1,17 +0,0 @@ -//@ run-pass - -pub fn main() { - let mut x: isize = 1; - x *= 2; - println!("{}", x); - assert_eq!(x, 2); - x += 3; - println!("{}", x); - assert_eq!(x, 5); - x *= x; - println!("{}", x); - assert_eq!(x, 25); - x /= 5; - println!("{}", x); - assert_eq!(x, 5); -} diff --git a/tests/ui/oom_unwind.rs b/tests/ui/panics/oom-panic-unwind.rs similarity index 100% rename from tests/ui/oom_unwind.rs rename to tests/ui/panics/oom-panic-unwind.rs diff --git a/tests/ui/opt-in-copy.rs b/tests/ui/traits/copy-requires-all-fields-copy.rs similarity index 100% rename from tests/ui/opt-in-copy.rs rename to tests/ui/traits/copy-requires-all-fields-copy.rs diff --git a/tests/ui/opt-in-copy.stderr b/tests/ui/traits/copy-requires-all-fields-copy.stderr similarity index 100% rename from tests/ui/opt-in-copy.stderr rename to tests/ui/traits/copy-requires-all-fields-copy.stderr diff --git a/tests/ui/occurs-check.rs b/tests/ui/type-inference/direct-self-reference-occurs-check.rs similarity index 100% rename from tests/ui/occurs-check.rs rename to tests/ui/type-inference/direct-self-reference-occurs-check.rs diff --git a/tests/ui/occurs-check.stderr b/tests/ui/type-inference/direct-self-reference-occurs-check.stderr similarity index 100% rename from tests/ui/occurs-check.stderr rename to tests/ui/type-inference/direct-self-reference-occurs-check.stderr diff --git a/tests/ui/occurs-check-3.rs b/tests/ui/type-inference/enum-self-reference-occurs-check.rs similarity index 100% rename from tests/ui/occurs-check-3.rs rename to tests/ui/type-inference/enum-self-reference-occurs-check.rs diff --git a/tests/ui/occurs-check-3.stderr b/tests/ui/type-inference/enum-self-reference-occurs-check.stderr similarity index 100% rename from tests/ui/occurs-check-3.stderr rename to tests/ui/type-inference/enum-self-reference-occurs-check.stderr diff --git a/tests/ui/occurs-check-2.rs b/tests/ui/type-inference/infinite-type-occurs-check.rs similarity index 100% rename from tests/ui/occurs-check-2.rs rename to tests/ui/type-inference/infinite-type-occurs-check.rs diff --git a/tests/ui/occurs-check-2.stderr b/tests/ui/type-inference/infinite-type-occurs-check.stderr similarity index 100% rename from tests/ui/occurs-check-2.stderr rename to tests/ui/type-inference/infinite-type-occurs-check.stderr From 0f7a86bb2ac5b2ca57e5524127f9cbeb88f89a74 Mon Sep 17 00:00:00 2001 From: Kivooeo Date: Tue, 1 Jul 2025 02:09:12 +0500 Subject: [PATCH 2/2] cleaned up some tests --- tests/ui/binop/compound-assign-by-ref.rs | 5 ++--- tests/ui/closures/fnonce-call-twice-error.rs | 7 +++---- tests/ui/closures/fnonce-call-twice-error.stderr | 12 ++++++------ tests/ui/panics/oom-panic-unwind.rs | 2 ++ tests/ui/traits/copy-requires-all-fields-copy.rs | 2 ++ tests/ui/traits/copy-requires-all-fields-copy.stderr | 4 ++-- .../direct-self-reference-occurs-check.rs | 4 ++++ .../direct-self-reference-occurs-check.stderr | 2 +- .../enum-self-reference-occurs-check.rs | 11 ++++++++--- .../enum-self-reference-occurs-check.stderr | 2 +- .../ui/type-inference/infinite-type-occurs-check.rs | 5 ++++- .../type-inference/infinite-type-occurs-check.stderr | 2 +- 12 files changed, 36 insertions(+), 22 deletions(-) diff --git a/tests/ui/binop/compound-assign-by-ref.rs b/tests/ui/binop/compound-assign-by-ref.rs index 73788da92321c..e1f519a137fc9 100644 --- a/tests/ui/binop/compound-assign-by-ref.rs +++ b/tests/ui/binop/compound-assign-by-ref.rs @@ -1,9 +1,8 @@ +//! Test compound assignment operators with reference right-hand side. + //@ run-pass fn main() { - // test compound assignment operators with ref as right-hand side, - // for each operator, with various types as operands. - // test AddAssign { let mut x = 3i8; diff --git a/tests/ui/closures/fnonce-call-twice-error.rs b/tests/ui/closures/fnonce-call-twice-error.rs index 3fd8c5cadca98..1662b7bddaaee 100644 --- a/tests/ui/closures/fnonce-call-twice-error.rs +++ b/tests/ui/closures/fnonce-call-twice-error.rs @@ -1,16 +1,15 @@ -// Testing guarantees provided by once functions. -// This program would segfault if it were legal. +//! Test that `FnOnce` closures cannot be called twice. use std::sync::Arc; -fn foo(blk: F) { +fn foo(blk: F) { blk(); blk(); //~ ERROR use of moved value } fn main() { let x = Arc::new(true); - foo(move|| { + foo(move || { assert!(*x); drop(x); }); diff --git a/tests/ui/closures/fnonce-call-twice-error.stderr b/tests/ui/closures/fnonce-call-twice-error.stderr index 42697374115ca..51d8a33dcd796 100644 --- a/tests/ui/closures/fnonce-call-twice-error.stderr +++ b/tests/ui/closures/fnonce-call-twice-error.stderr @@ -1,18 +1,18 @@ error[E0382]: use of moved value: `blk` - --> $DIR/once-cant-call-twice-on-heap.rs:8:5 + --> $DIR/fnonce-call-twice-error.rs:7:5 | -LL | fn foo(blk: F) { - | --- move occurs because `blk` has type `F`, which does not implement the `Copy` trait +LL | fn foo(blk: F) { + | --- move occurs because `blk` has type `F`, which does not implement the `Copy` trait LL | blk(); | ----- `blk` moved due to this call LL | blk(); | ^^^ value used here after move | note: `FnOnce` closures can only be called once - --> $DIR/once-cant-call-twice-on-heap.rs:6:10 + --> $DIR/fnonce-call-twice-error.rs:5:11 | -LL | fn foo(blk: F) { - | ^^^^^^^^ `F` is made to be an `FnOnce` closure here +LL | fn foo(blk: F) { + | ^^^^^^^^ `F` is made to be an `FnOnce` closure here LL | blk(); | ----- this value implements `FnOnce`, which causes it to be moved when called diff --git a/tests/ui/panics/oom-panic-unwind.rs b/tests/ui/panics/oom-panic-unwind.rs index be5e63d430b70..5974ad91406f3 100644 --- a/tests/ui/panics/oom-panic-unwind.rs +++ b/tests/ui/panics/oom-panic-unwind.rs @@ -1,3 +1,5 @@ +//! Test that out-of-memory conditions trigger catchable panics with `-Z oom=panic`. + //@ compile-flags: -Z oom=panic //@ run-pass //@ no-prefer-dynamic diff --git a/tests/ui/traits/copy-requires-all-fields-copy.rs b/tests/ui/traits/copy-requires-all-fields-copy.rs index d0257b5745d8b..8c829a7382b3e 100644 --- a/tests/ui/traits/copy-requires-all-fields-copy.rs +++ b/tests/ui/traits/copy-requires-all-fields-copy.rs @@ -1,3 +1,5 @@ +//! Test that `Copy` cannot be implemented if any field doesn't implement `Copy`. + struct CantCopyThis; struct IWantToCopyThis { diff --git a/tests/ui/traits/copy-requires-all-fields-copy.stderr b/tests/ui/traits/copy-requires-all-fields-copy.stderr index 258ff16e6e485..1a9e1ada36637 100644 --- a/tests/ui/traits/copy-requires-all-fields-copy.stderr +++ b/tests/ui/traits/copy-requires-all-fields-copy.stderr @@ -1,5 +1,5 @@ error[E0204]: the trait `Copy` cannot be implemented for this type - --> $DIR/opt-in-copy.rs:7:15 + --> $DIR/copy-requires-all-fields-copy.rs:9:15 | LL | but_i_cant: CantCopyThis, | ------------------------ this field does not implement `Copy` @@ -8,7 +8,7 @@ LL | impl Copy for IWantToCopyThis {} | ^^^^^^^^^^^^^^^ error[E0204]: the trait `Copy` cannot be implemented for this type - --> $DIR/opt-in-copy.rs:19:15 + --> $DIR/copy-requires-all-fields-copy.rs:21:15 | LL | ButICant(CantCopyThisEither), | ------------------ this field does not implement `Copy` diff --git a/tests/ui/type-inference/direct-self-reference-occurs-check.rs b/tests/ui/type-inference/direct-self-reference-occurs-check.rs index 638b9b6d7e4c2..6e3d8251fc4f8 100644 --- a/tests/ui/type-inference/direct-self-reference-occurs-check.rs +++ b/tests/ui/type-inference/direct-self-reference-occurs-check.rs @@ -1,3 +1,7 @@ +//! Test that occurs check prevents direct self-reference in variable assignment. +//! +//! Regression test for . + fn main() { let f; f = Box::new(f); diff --git a/tests/ui/type-inference/direct-self-reference-occurs-check.stderr b/tests/ui/type-inference/direct-self-reference-occurs-check.stderr index ea7c541abc135..6c522ffac1f7a 100644 --- a/tests/ui/type-inference/direct-self-reference-occurs-check.stderr +++ b/tests/ui/type-inference/direct-self-reference-occurs-check.stderr @@ -1,5 +1,5 @@ error[E0275]: overflow assigning `Box<_>` to `_` - --> $DIR/occurs-check.rs:3:18 + --> $DIR/direct-self-reference-occurs-check.rs:7:18 | LL | f = Box::new(f); | ^ diff --git a/tests/ui/type-inference/enum-self-reference-occurs-check.rs b/tests/ui/type-inference/enum-self-reference-occurs-check.rs index 377a043daf3f6..2905868b8bfa9 100644 --- a/tests/ui/type-inference/enum-self-reference-occurs-check.rs +++ b/tests/ui/type-inference/enum-self-reference-occurs-check.rs @@ -1,11 +1,16 @@ -// From Issue #778 +//! Test that occurs check prevents infinite types with enum self-references. +//! +//! Regression test for . + +enum Clam { + A(T), +} -enum Clam { A(T) } fn main() { let c; c = Clam::A(c); //~^ ERROR overflow assigning `Clam<_>` to `_` match c { - Clam::A::(_) => { } + Clam::A::(_) => {} } } diff --git a/tests/ui/type-inference/enum-self-reference-occurs-check.stderr b/tests/ui/type-inference/enum-self-reference-occurs-check.stderr index eb05c94957c98..3239be51a1766 100644 --- a/tests/ui/type-inference/enum-self-reference-occurs-check.stderr +++ b/tests/ui/type-inference/enum-self-reference-occurs-check.stderr @@ -1,5 +1,5 @@ error[E0275]: overflow assigning `Clam<_>` to `_` - --> $DIR/occurs-check-3.rs:6:17 + --> $DIR/enum-self-reference-occurs-check.rs:11:17 | LL | c = Clam::A(c); | ^ diff --git a/tests/ui/type-inference/infinite-type-occurs-check.rs b/tests/ui/type-inference/infinite-type-occurs-check.rs index 9289a8e870a18..b353824e931d4 100644 --- a/tests/ui/type-inference/infinite-type-occurs-check.rs +++ b/tests/ui/type-inference/infinite-type-occurs-check.rs @@ -1,5 +1,8 @@ -fn main() { +//! Test that occurs check prevents infinite types during type inference. +//! +//! Regression test for . +fn main() { let f; let g; diff --git a/tests/ui/type-inference/infinite-type-occurs-check.stderr b/tests/ui/type-inference/infinite-type-occurs-check.stderr index 5f296967f30d8..9cb8bb917962e 100644 --- a/tests/ui/type-inference/infinite-type-occurs-check.stderr +++ b/tests/ui/type-inference/infinite-type-occurs-check.stderr @@ -1,5 +1,5 @@ error[E0275]: overflow assigning `Box<_>` to `_` - --> $DIR/occurs-check-2.rs:6:9 + --> $DIR/infinite-type-occurs-check.rs:9:9 | LL | g = f; | ^