You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rollup merge of #154606 - cyrgani:misc-test-cleanups, r=Kivooeo
misc test cleanups
These are some mixed cleanups to `tests/ui` that individually seemed too small for a PR of their own. Some duplicated tests are removed, `issues-*` tests are renamed and more FIXMEs are added to `ui/README.md`.
Reasoning for the deleted tests:
* `tests/ui/associated-types/issue-47814.rs`: duplicate of `tests/ui/associated-consts/issue-47814.rs`
* rename `tests/ui/closures/2229_closure_analysis/migrations/issue-78720.rs` to `.../nested-copy-drops-83176.rs` since #78720 was not the correct issue, #83176 was.
* `tests/ui/specialization/defaultimpl/specialization-feature-gate-default.rs`: duplicate of `tests/ui/specialization/specialization-feature-gate-default.rs`
* `fn/issue-1900.rs`: duplicate of `error-codes/E0131.rs`
r? @Kivooeo
These tests deal with anonymous parameters (no name, only type), a deprecated feature that becomes a hard error in Edition 2018.
@@ -141,6 +143,8 @@ However, only a single test was ever added to this category: <https://github.com
141
143
142
144
Tests for pattern binding in match expressions, let statements, and other binding contexts. E.g. binding modes and refutability. See [Patterns | Reference](https://doc.rust-lang.org/reference/patterns.html).
143
145
146
+
**FIXME**: quite some overlap with `tests/ui/pattern` and `tests/ui/match`.
147
+
144
148
## `tests/ui/binop/`: Binary operators
145
149
146
150
Tests for binary operators (such as `==`, `&&` or `^`). E.g. overloading, type checking, and diagnostics for invalid operations.
@@ -272,7 +276,7 @@ This directory is actually for the standard library [`std::process::Command`](ht
272
276
273
277
Some traits' implementation must be compared with their definition, checking for problems such as the implementation having stricter requirements (such as needing to implement `Copy`).
274
278
275
-
This subdirectory is *not* intended comparison traits (`PartialEq`, `Eq`, `PartialOrd`, `Ord`).
279
+
This subdirectory is *not* intended for comparison traits (`PartialEq`, `Eq`, `PartialOrd`, `Ord`).
276
280
277
281
## `tests/ui/compile-flags/`
278
282
@@ -448,6 +452,8 @@ Exercises diagnostics for when a code block attempts to gain ownership of a non-
448
452
449
453
Exercises diagnostics for disallowed struct destructuring.
450
454
455
+
**FIXME**: does this really need to be its own immediate subdirectory?
456
+
451
457
## `tests/ui/dist`
452
458
453
459
Tests that require distribution artifacts.
@@ -508,7 +514,7 @@ These tests run in specific Rust editions, such as Rust 2015 or Rust 2018, and c
508
514
509
515
## `tests/ui/eii`: Externally Implementable Items
510
516
511
-
Exercises `eii` keyword.
517
+
Exercises the `#[eii]` attribute and related features.
512
518
513
519
## `tests/ui/entry-point/`: `main` function
514
520
@@ -611,8 +617,6 @@ Tests for `#![feature(fn_traits)]`. See [`fn_traits` | The Unstable book](https:
611
617
612
618
Anything to do with loops and `for`, `loop` and `while` keywords to express them.
613
619
614
-
**FIXME**: After `ui/for` is merged into this, also carry over its SUMMARY text.
Tests for `#[rustc_force_inline]`, which will force a function to always be labelled as inline by the compiler (it will be inserted at the point of its call instead of being used as a normal function call.) If the compiler is unable to inline the function, an error will be reported. See <https://github.com/rust-lang/rust/pull/134082>.
@@ -730,6 +734,8 @@ Tests on type inference.
730
734
731
735
Tests for diagnostics on infinitely recursive types without indirection.
732
736
737
+
**FIXME**: check for overlap with `structs-enums/enum-rec` and `structs-enums/struct-rec`
738
+
733
739
## `tests/ui/inline-const/`
734
740
735
741
These tests revolve around the inline `const` block that forces the compiler to const-eval its content.
@@ -853,7 +859,9 @@ Tests exercising analysis for unused variables, unreachable statements, function
853
859
854
860
## `tests/ui/loop-match`
855
861
856
-
Tests for `loop` with `match` expressions.
862
+
Tests for the `loop_match` feature to optimize `loop`s consisting of one big `match` expressions.
863
+
864
+
See [Tracking issue for way to express intraprocedural finite state machines #132306](https://github.com/rust-lang/rust/issues/132306).
857
865
858
866
## `tests/ui/loops/`
859
867
@@ -891,6 +899,8 @@ See [Tracking issue for allowing overlapping implementations for marker trait #2
891
899
892
900
Broad category of tests on `match` constructs.
893
901
902
+
**FIXME**: many tests overlap with `tests/ui/bindings`, try to reduce duplication.
903
+
894
904
## `tests/ui/methods/`
895
905
896
906
A broad category for anything related to methods and method resolution.
@@ -899,6 +909,8 @@ A broad category for anything related to methods and method resolution.
899
909
900
910
Certain mir-opt regression tests.
901
911
912
+
**FIXME**: many tests in this directory are not about MIR or optimizations, relocate these.
913
+
902
914
## `tests/ui/mir-dataflow`
903
915
904
916
Tests for MIR dataflow analysis.
@@ -977,6 +989,8 @@ Tests that exercises edge cases, such as specific floats, large or very small nu
977
989
978
990
Tests that checks numeric types and their interactions, such as casting among them with `as` or providing the wrong numeric suffix.
979
991
992
+
**FIXME**: these tests could get moved to other directories, in particular `cast/` or `parser/`.
993
+
980
994
## `tests/ui/object-lifetime/`
981
995
982
996
Tests on lifetimes on objects, such as a lifetime bound not being able to be deduced from context, or checking that lifetimes are inherited properly.
@@ -1308,7 +1322,7 @@ Some standard library tests which are too inconvenient or annoying to implement
1308
1322
1309
1323
## `tests/ui/str/`
1310
1324
1311
-
Exercise `str`keyword and string slices.
1325
+
Exercise `str`primitive and string slices.
1312
1326
1313
1327
## `tests/ui/structs/`
1314
1328
@@ -1464,6 +1478,8 @@ See [RFC 0132 Unified Function Call Syntax](https://github.com/rust-lang/rfcs/bl
1464
1478
1465
1479
`#![feature(unboxed_closures)]`, `Fn`, `FnMut` and `FnOnce` traits
1466
1480
1481
+
**FIXME**: many tests have `unboxed-closure` in their name but only test normal closures, rename these.
1482
+
1467
1483
See [Tracking issue for Fn traits (`unboxed_closures` & `fn_traits` feature)](https://github.com/rust-lang/rust/issues/29625).
0 commit comments