mirror of
https://github.com/rust-lang/rust.git
synced 2026-04-27 18:57:42 +03:00
add more FIXMEs and details to ui/README.md
This commit is contained in:
+22
-6
@@ -36,6 +36,8 @@ These tests exercise the [`annotate-snippets`]-based emitter implementation.
|
||||
|
||||
[`annotate-snippets`]: https://github.com/rust-lang/annotate-snippets-rs
|
||||
|
||||
**FIXME**: merge this with `error-emitter`
|
||||
|
||||
## `tests/ui/anon-params`
|
||||
|
||||
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
|
||||
|
||||
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).
|
||||
|
||||
**FIXME**: quite some overlap with `tests/ui/pattern` and `tests/ui/match`.
|
||||
|
||||
## `tests/ui/binop/`: Binary operators
|
||||
|
||||
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
|
||||
|
||||
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`).
|
||||
|
||||
This subdirectory is *not* intended comparison traits (`PartialEq`, `Eq`, `PartialOrd`, `Ord`).
|
||||
This subdirectory is *not* intended for comparison traits (`PartialEq`, `Eq`, `PartialOrd`, `Ord`).
|
||||
|
||||
## `tests/ui/compile-flags/`
|
||||
|
||||
@@ -448,6 +452,8 @@ Exercises diagnostics for when a code block attempts to gain ownership of a non-
|
||||
|
||||
Exercises diagnostics for disallowed struct destructuring.
|
||||
|
||||
**FIXME**: does this really need to be its own immediate subdirectory?
|
||||
|
||||
## `tests/ui/dist`
|
||||
|
||||
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
|
||||
|
||||
## `tests/ui/eii`: Externally Implementable Items
|
||||
|
||||
Exercises `eii` keyword.
|
||||
Exercises the `#[eii]` attribute and related features.
|
||||
|
||||
## `tests/ui/entry-point/`: `main` function
|
||||
|
||||
@@ -611,8 +617,6 @@ Tests for `#![feature(fn_traits)]`. See [`fn_traits` | The Unstable book](https:
|
||||
|
||||
Anything to do with loops and `for`, `loop` and `while` keywords to express them.
|
||||
|
||||
**FIXME**: After `ui/for` is merged into this, also carry over its SUMMARY text.
|
||||
|
||||
## `tests/ui/force-inlining/`: `#[rustc_force_inline]`
|
||||
|
||||
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.
|
||||
|
||||
Tests for diagnostics on infinitely recursive types without indirection.
|
||||
|
||||
**FIXME**: check for overlap with `structs-enums/enum-rec` and `structs-enums/struct-rec`
|
||||
|
||||
## `tests/ui/inline-const/`
|
||||
|
||||
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
|
||||
|
||||
## `tests/ui/loop-match`
|
||||
|
||||
Tests for `loop` with `match` expressions.
|
||||
Tests for the `loop_match` feature to optimize `loop`s consisting of one big `match` expressions.
|
||||
|
||||
See [Tracking issue for way to express intraprocedural finite state machines #132306](https://github.com/rust-lang/rust/issues/132306).
|
||||
|
||||
## `tests/ui/loops/`
|
||||
|
||||
@@ -891,6 +899,8 @@ See [Tracking issue for allowing overlapping implementations for marker trait #2
|
||||
|
||||
Broad category of tests on `match` constructs.
|
||||
|
||||
**FIXME**: many tests overlap with `tests/ui/bindings`, try to reduce duplication.
|
||||
|
||||
## `tests/ui/methods/`
|
||||
|
||||
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.
|
||||
|
||||
Certain mir-opt regression tests.
|
||||
|
||||
**FIXME**: many tests in this directory are not about MIR or optimizations, relocate these.
|
||||
|
||||
## `tests/ui/mir-dataflow`
|
||||
|
||||
Tests for MIR dataflow analysis.
|
||||
@@ -977,6 +989,8 @@ Tests that exercises edge cases, such as specific floats, large or very small nu
|
||||
|
||||
Tests that checks numeric types and their interactions, such as casting among them with `as` or providing the wrong numeric suffix.
|
||||
|
||||
**FIXME**: these tests could get moved to other directories, in particular `cast/` or `parser/`.
|
||||
|
||||
## `tests/ui/object-lifetime/`
|
||||
|
||||
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
|
||||
|
||||
## `tests/ui/str/`
|
||||
|
||||
Exercise `str` keyword and string slices.
|
||||
Exercise `str` primitive and string slices.
|
||||
|
||||
## `tests/ui/structs/`
|
||||
|
||||
@@ -1464,6 +1478,8 @@ See [RFC 0132 Unified Function Call Syntax](https://github.com/rust-lang/rfcs/bl
|
||||
|
||||
`#![feature(unboxed_closures)]`, `Fn`, `FnMut` and `FnOnce` traits
|
||||
|
||||
**FIXME**: many tests have `unboxed-closure` in their name but only test normal closures, rename these.
|
||||
|
||||
See [Tracking issue for Fn traits (`unboxed_closures` & `fn_traits` feature)](https://github.com/rust-lang/rust/issues/29625).
|
||||
|
||||
## `tests/ui/underscore-lifetime/`: `'_` elided lifetime
|
||||
|
||||
Reference in New Issue
Block a user