rust/tests/ui
bors 17b322fa69 Auto merge of #121848 - lcnr:stabilize-next-solver, r=compiler-errors
stabilize `-Znext-solver=coherence`

r? `@compiler-errors`

---

This PR stabilizes the use of the next generation trait solver in coherence checking by enabling `-Znext-solver=coherence` by default. More specifically its use in the *implicit negative overlap check*. The tracking issue for this is https://github.com/rust-lang/rust/issues/114862. Closes #114862.

## Background

### The next generation trait solver

The new solver lives in [`rustc_trait_selection::solve`](https://github.com/rust-lang/rust/blob/master/compiler/rustc_trait_selection/src/solve/mod.rs) and is intended to replace the existing *evaluate*, *fulfill*, and *project* implementation. It also has a wider impact on the rest of the type system, for example by changing our approach to handling associated types.

For a more detailed explanation of the new trait solver, see the [rustc-dev-guide](https://rustc-dev-guide.rust-lang.org/solve/trait-solving.html). This does not stabilize the current behavior of the new trait solver, only the behavior impacting the implicit negative overlap check. There are many areas in the new solver which are not yet finalized. We are confident that their final design will not conflict with the user-facing behavior observable via coherence. More on that further down.

Please check out [the chapter](https://rustc-dev-guide.rust-lang.org/solve/significant-changes.html) summarizing the most significant changes between the existing and new implementations.

### Coherence and the implicit negative overlap check

Coherence checking detects any overlapping impls. Overlapping trait impls always error while overlapping inherent impls result in an error if they have methods with the same name. Coherence also results in an error if any other impls could exist, even if they are currently unknown. This affects impls which may get added to upstream crates in a backwards compatible way and impls from downstream crates.

Coherence failing to detect overlap is generally considered to be unsound, even if it is difficult to actually get runtime UB this way. It is quite easy to get ICEs due to bugs in coherence.

It currently consists of two checks:

The [orphan check] validates that impls do not overlap with other impls we do not know about: either because they may be defined in a sibling crate, or because an upstream crate is allowed to add it without being considered a breaking change.

The [overlap check] validates that impls do not overlap with other impls we know about. This is done as follows:
- Instantiate the generic parameters of both impls with inference variables
- Equate the `TraitRef`s of both impls. If it fails there is no overlap.
- [implicit negative]: Check whether any of the instantiated `where`-bounds of one of the impls definitely do not hold when using the constraints from the previous step. If a `where`-bound does not hold, there is no overlap.
- *explicit negative (still unstable, ignored going forward)*: Check whether the any negated `where`-bounds can be proven, e.g. a `&mut u32: Clone` bound definitely does not hold as an explicit `impl<T> !Clone for &mut T` exists.

The overlap check has to *prove that unifying the impls does not succeed*. This means that **incorrectly getting a type error during coherence is unsound** as it would allow impls to overlap: coherence has to be *complete*.

Completeness means that we never incorrectly error. This means that during coherence we must only add inference constraints if they are definitely necessary. During ordinary type checking [this does not hold](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=01d93b592bd9036ac96071cbf1d624a9), so the trait solver has to behave differently, depending on whether we're in coherence or not.

The implicit negative check only considers goals to "definitely not hold" if they could not be implemented downstream, by a sibling, or upstream in a backwards compatible way. If the goal is is "unknowable" as it may get added in another crate, we add an ambiguous candidate: [source](bea5bebf3d/compiler/rustc_trait_selection/src/solve/assembly/mod.rs (L858-L883)).

[orphan check]: fd80c02c16/compiler/rustc_trait_selection/src/traits/coherence.rs (L566-L579)
[overlap check]: fd80c02c16/compiler/rustc_trait_selection/src/traits/coherence.rs (L92-L98)
[implicit negative]: fd80c02c16/compiler/rustc_trait_selection/src/traits/coherence.rs (L223-L281)

## Motivation

Replacing the existing solver in coherence fixes soundness bugs by removing sources of incompleteness in the type system. The new solver separately strengthens coherence, resulting in more impls being disjoint and passing the coherence check. The concrete changes will be elaborated further down. We believe the stabilization to reduce the likelihood of future bugs in coherence as the new implementation is easier to understand and reason about.

It allows us to remove the support for coherence and implicit-negative reasoning in the old solver, allowing us to remove some code and simplifying the old trait solver. We will only remove the old solver support once this stabilization has reached stable to make sure we're able to quickly revert in case any unexpected issues are detected before then.

Stabilizing the use of the next-generation trait solver expresses our confidence that its current behavior is intended and our work towards enabling its use everywhere will not require any breaking changes to the areas used by coherence checking. We are also confident that we will be able to replace the existing solver everywhere, as maintaining two separate systems adds a significant maintainance burden.

## User-facing impact and reasoning

### Breakage due to improved handling of associated types

The new solver fixes multiple issues related to associated types. As these issues caused coherence to consider more types distinct, fixing them results in more overlap errors. This is therefore a breaking change.

#### Structurally relating aliases containing bound vars

Fixes https://github.com/rust-lang/rust/issues/102048. In the existing solver relating ambiguous projections containing bound variables is structural. This is *incomplete* and allows overlapping impls. These was mostly not exploitable as the same issue also caused impls to not apply when trying to use them. The new solver defers alias-relating to a nested goal, fixing this issue:
```rust
// revisions: current next
//[next] compile-flags: -Znext-solver=coherence
trait Trait {}

trait Project {
    type Assoc<'a>;
}

impl Project for u32 {
    type Assoc<'a> = &'a u32;
}

// Eagerly normalizing `<?infer as Project>::Assoc<'a>` is ambiguous,
// so the old solver ended up structurally relating
//
//     (?infer, for<'a> fn(<?infer as Project>::Assoc<'a>))
//
// with
//
//     ((u32, fn(&'a u32)))
//
// Equating `&'a u32` with `<u32 as Project>::Assoc<'a>` failed, even
// though these types are equal modulo normalization.
impl<T: Project> Trait for (T, for<'a> fn(<T as Project>::Assoc<'a>)) {}

impl<'a> Trait for (u32, fn(&'a u32)) {}
//[next]~^ ERROR conflicting implementations of trait `Trait` for type `(u32, for<'a> fn(&'a u32))`
```

A crater run did not discover any breakage due to this change.

#### Unknowable candidates for higher ranked trait goals

This avoids an unsoundness by attempting to normalize in `trait_ref_is_knowable`, fixing https://github.com/rust-lang/rust/issues/114061. This is a side-effect of supporting lazy normalization, as that forces us to attempt to normalize when checking whether a `TraitRef` is knowable: [source](47dd709bed/compiler/rustc_trait_selection/src/solve/assembly/mod.rs (L754-L764)).

```rust
// revisions: current next
//[next] compile-flags: -Znext-solver=coherence
trait IsUnit {}
impl IsUnit for () {}

pub trait WithAssoc<'a> {
    type Assoc;
}

// We considered `for<'a> <T as WithAssoc<'a>>::Assoc: IsUnit`
// to be knowable, even though the projection is ambiguous.
pub trait Trait {}
impl<T> Trait for T
where
    T: 'static,
    for<'a> T: WithAssoc<'a>,
    for<'a> <T as WithAssoc<'a>>::Assoc: IsUnit,
{
}
impl<T> Trait for Box<T> {}
//[next]~^ ERROR conflicting implementations of trait `Trait`
```
The two impls of `Trait` overlap given the following downstream crate:
```rust
use dep::*;
struct Local;
impl WithAssoc<'_> for Box<Local> {
    type Assoc = ();
}
```

There a similar coherence unsoundness caused by our handling of aliases which is fixed separately in https://github.com/rust-lang/rust/pull/117164.

This change breaks the [`derive-visitor`](https://crates.io/crates/derive-visitor) crate. I have opened an issue in that repo: nikis05/derive-visitor#16.

### Evaluating goals to a fixpoint and applying inference constraints

In the old implementation of the implicit-negative check, each obligation is [checked separately without applying its inference constraints](bea5bebf3d/compiler/rustc_trait_selection/src/traits/coherence.rs (L323-L338)). The new solver instead [uses a `FulfillmentCtxt`](bea5bebf3d/compiler/rustc_trait_selection/src/traits/coherence.rs (L315-L321)) for this, which evaluates all obligations in a loop until there's no further inference progress.

This is necessary for backwards compatibility as we do not eagerly normalize with the new solver, resulting in constraints from normalization to only get applied by evaluating a separate obligation. This also allows more code to compile:
```rust
// revisions: current next
//[next] compile-flags: -Znext-solver=coherence
trait Mirror {
    type Assoc;
}
impl<T> Mirror for T {
    type Assoc = T;
}

trait Foo {}
trait Bar {}

// The self type starts out as `?0` but is constrained to `()`
// due to the where-clause below. Because `(): Bar` is known to
// not hold, we can prove the impls disjoint.
impl<T> Foo for T where (): Mirror<Assoc = T> {}
//[current]~^ ERROR conflicting implementations of trait `Foo` for type `()`
impl<T> Foo for T where T: Bar {}

fn main() {}
```
The old solver does not run nested goals to a fixpoint in evaluation. The new solver does do so, strengthening inference and improving the overlap check:
```rust
// revisions: current next
//[next] compile-flags: -Znext-solver=coherence
trait Foo {}
impl<T> Foo for (u8, T, T) {}
trait NotU8 {}
trait Bar {}
impl<T, U: NotU8> Bar for (T, T, U) {}

trait NeedsFixpoint {}
impl<T: Foo + Bar> NeedsFixpoint for T {}
impl NeedsFixpoint for (u8, u8, u8) {}

trait Overlap {}
impl<T: NeedsFixpoint> Overlap for T {}
impl<T, U: NotU8, V> Overlap for (T, U, V) {}
//[current]~^ ERROR conflicting implementations of trait `Foo`
```

### Breakage due to removal of incomplete candidate preference

Fixes #107887. In the old solver we incompletely prefer the builtin trait object impl over user defined impls. This can break inference guidance, inferring `?x` in `dyn Trait<u32>: Trait<?x>` to `u32`, even if an explicit impl of `Trait<u64>` also exists.

This caused coherence to incorrectly allow overlapping impls, resulting in ICEs and a theoretical unsoundness. See https://github.com/rust-lang/rust/issues/107887#issuecomment-1997261676. This compiles on stable but results in an overlap error with `-Znext-solver=coherence`:

```rust
// revisions: current next
//[next] compile-flags: -Znext-solver=coherence
struct W<T: ?Sized>(*const T);

trait Trait<T: ?Sized> {
    type Assoc;
}

// This would trigger the check for overlap between automatic and custom impl.
// They actually don't overlap so an impl like this should remain possible
// forever.
//
// impl Trait<u64> for dyn Trait<u32> {}
trait Indirect {}
impl Indirect for dyn Trait<u32, Assoc = ()> {}
impl<T: Indirect + ?Sized> Trait<u64> for T {
    type Assoc = ();
}

// Incomplete impl where `dyn Trait<u32>: Trait<_>` does not hold, but
// `dyn Trait<u32>: Trait<u64>` does.
trait EvaluateHack<U: ?Sized> {}
impl<T: ?Sized, U: ?Sized> EvaluateHack<W<U>> for T
where
    T: Trait<U, Assoc = ()>, // incompletely constrains `_` to `u32`
    U: IsU64,
    T: Trait<U, Assoc = ()>, // incompletely constrains `_` to `u32`
{
}

trait IsU64 {}
impl IsU64 for u64 {}

trait Overlap<U: ?Sized> {
    type Assoc: Default;
}
impl<T: ?Sized + EvaluateHack<W<U>>, U: ?Sized> Overlap<U> for T {
    type Assoc = Box<u32>;
}
impl<U: ?Sized> Overlap<U> for dyn Trait<u32, Assoc = ()> {
//[next]~^ ERROR conflicting implementations of trait `Overlap<_>`
    type Assoc = usize;
}
```

### Considering region outlives bounds in the `leak_check`

For details on the `leak_check`, see the FCP proposal in #119820.[^leak_check]

[^leak_check]: which should get moved to the dev-guide once that PR lands :3

In both coherence and during candidate selection, the `leak_check` relies on the region constraints added in `evaluate`. It therefore currently does not register outlives obligations: [source](ccb1415eac/compiler/rustc_trait_selection/src/traits/select/mod.rs (L792-L810)). This was likely done as a performance optimization without considering its impact on the `leak_check`. This is the case as in the old solver, *evaluatation* and *fulfillment* are split, with evaluation being responsible for candidate selection and fulfillment actually registering all the constraints.

This split does not exist with the new solver. The `leak_check` can therefore eagerly detect errors caused by region outlives obligations. This improves both coherence itself and candidate selection:

```rust
// revisions: current next
//[next] compile-flags: -Znext-solver=coherence
trait LeakErr<'a, 'b> {}
// Using this impl adds an `'b: 'a` bound which results
// in a higher-ranked region error. This bound has been
// previously ignored but is now considered.
impl<'a, 'b: 'a> LeakErr<'a, 'b> for () {}

trait NoOverlapDir<'a> {}
impl<'a, T: for<'b> LeakErr<'a, 'b>> NoOverlapDir<'a> for T {}
impl<'a> NoOverlapDir<'a> for () {}
//[current]~^ ERROR conflicting implementations of trait `NoOverlapDir<'_>`

// --------------------------------------

// necessary to avoid coherence unknowable candidates
struct W<T>(T);

trait GuidesSelection<'a, U> {}
impl<'a, T: for<'b> LeakErr<'a, 'b>> GuidesSelection<'a, W<u32>> for T {}
impl<'a, T> GuidesSelection<'a, W<u8>> for T {}

trait NotImplementedByU8 {}
trait NoOverlapInd<'a, U> {}
impl<'a, T: GuidesSelection<'a, W<U>>, U> NoOverlapInd<'a, U> for T {}
impl<'a, U: NotImplementedByU8> NoOverlapInd<'a, U> for () {}
//[current]~^ conflicting implementations of trait `NoOverlapInd<'_, _>`
```

### Removal of `fn match_fresh_trait_refs`

The old solver tries to [eagerly detect unbounded recursion](b14fd2359f/compiler/rustc_trait_selection/src/traits/select/mod.rs (L1196-L1211)), forcing the affected goals to be ambiguous. This check is only an approximation and has not been added to the new solver.

The check is not necessary in the new solver and it would be problematic for caching. As it depends on all goals currently on the stack, using a global cache entry would have to always make sure that doing so does not circumvent this check.

This changes some goals to error - or succeed - instead of failing with ambiguity. This allows more code to compile:

```rust
// revisions: current next
//[next] compile-flags: -Znext-solver=coherence

// Need to use this local wrapper for the impls to be fully
// knowable as unknowable candidate result in ambiguity.
struct Local<T>(T);

trait Trait<U> {}
// This impl does not hold, but is ambiguous in the old
// solver due to its overflow approximation.
impl<U> Trait<U> for Local<u32> where Local<u16>: Trait<U> {}
// This impl holds.
impl Trait<Local<()>> for Local<u8> {}

// In the old solver, `Local<?t>: Trait<Local<?u>>` is ambiguous,
// resulting in `Local<?u>: NoImpl`, also being ambiguous.
//
// In the new solver the first impl does not apply, constraining
// `?u` to `Local<()>`, causing `Local<()>: NoImpl` to error.
trait Indirect<T> {}
impl<T, U> Indirect<U> for T
where
    T: Trait<U>,
    U: NoImpl
{}

// Not implemented for `Local<()>`
trait NoImpl {}
impl NoImpl for Local<u8> {}
impl NoImpl for Local<u16> {}

// `Local<?t>: Indirect<Local<?u>>` cannot hold, so
// these impls do not overlap.
trait NoOverlap<U> {}
impl<T: Indirect<U>, U> NoOverlap<U> for T {}
impl<T, U> NoOverlap<Local<U>> for Local<T> {}
//~^ ERROR conflicting implementations of trait `NoOverlap<Local<_>>`
```

### Non-fatal overflow

The old solver immediately emits a fatal error when hitting the recursion limit. The new solver instead returns overflow. This both allows more code to compile and is results in performance and potential future compatability issues.

Non-fatal overflow is generally desirable. With fatal overflow, changing the order in which we evaluate nested goals easily causes breakage if we have goal which errors and one which overflows. It is also required to prevent breakage due to the removal of `fn match_fresh_trait_refs`, e.g. [in `typenum`](https://github.com/rust-lang/trait-system-refactor-initiative/issues/73).

#### Enabling more code to compile

In the below example, the old solver first tried to prove an overflowing goal, resulting in a fatal error. The new solver instead returns ambiguity due to overflow for that goal, causing the implicit negative overlap check to succeed as `Box<u32>: NotImplemented` does not hold.
```rust
// revisions: current next
//[next] compile-flags: -Znext-solver=coherence
//[current] ERROR overflow evaluating the requirement

trait Indirect<T> {}
impl<T: Overflow<()>> Indirect<T> for () {}

trait Overflow<U> {}
impl<T, U> Overflow<U> for Box<T>
where
    U: Indirect<Box<Box<T>>>,
{}

trait NotImplemented {}

trait Trait<U> {}
impl<T, U> Trait<U> for T
where
    // T: NotImplemented, // causes old solver to succeed
    U: Indirect<T>,
    T: NotImplemented,
{}

impl Trait<()> for Box<u32> {}
```

#### Avoiding hangs with non-fatal overflow

Simply returning ambiguity when reaching the recursion limit can very easily result in hangs, e.g.
```rust
trait Recur {}
impl<T, U> Recur for ((T, U), (U, T))
where
    (T, U): Recur,
    (U, T): Recur,
{}

trait NotImplemented {}
impl<T: NotImplemented> Recur for T {}
```
This can happen quite frequently as it's easy to have exponential blowup due to multiple nested goals at each step. As the trait solver is depth-first, this immediately caused a fatal overflow error in the old solver. In the new solver we have to handle the whole proof tree instead, which can very easily hang.

To avoid this we restrict the recursion depth after hitting the recursion limit for the first time. We also **ignore all inference constraints from goals resulting in overflow**. This is mostly backwards compatible as any overflow in the old solver resulted in a fatal error.

### sidenote about normalization

We return ambiguous nested goals of `NormalizesTo` goals to the caller and ignore their impact when computing the `Certainty` of the current goal. See the [normalization chapter](https://rustc-dev-guide.rust-lang.org/solve/normalization.html) for more details.This means we apply constraints resulting from other nested goals and from equating the impl header when normalizing, even if a nested goal results in overflow. This is necessary to avoid breaking the following example:
```rust
trait Trait {
    type Assoc;
}

struct W<T: ?Sized>(*mut T);
impl<T: ?Sized> Trait for W<W<T>>
where
    W<T>: Trait,
{
    type Assoc = ();
}

// `W<?t>: Trait<Assoc = u32>` does not hold as
// `Assoc` gets normalized to `()`. However, proving
// the where-bounds of the impl results in overflow.
//
// For this to continue to compile we must not discard
// constraints from normalizing associated types.
trait NoOverlap {}
impl<T: Trait<Assoc = u32>> NoOverlap for T {}
impl<T: ?Sized> NoOverlap for W<T> {}
```

#### Future compatability concerns

Non-fatal overflow results in some unfortunate future compatability concerns. Changing the approach to avoid more hangs by more strongly penalizing overflow can cause breakage as we either drop constraints or ignore candidates necessary to successfully compile. Weakening the overflow penalities instead allows more code to compile and strengthens inference while potentially causing more code to hang.

While the current approach is not perfect, we believe it to be good enough. We believe it to apply the necessary inference constraints to avoid breakage and expect there to not be any desirable patterns broken by our current penalities. Similarly we believe the current constraints to avoid most accidental hangs. Ignoring constraints of overflowing goals is especially useful, as it may allow major future optimizations to our overflow handling. See [this summary](https://hackmd.io/ATf4hN0NRY-w2LIVgeFsVg) and the linked documents in case you want to know more.

### changes to performance

In general, trait solving during coherence checking is not significant for performance. Enabling the next-generation trait solver in coherence does not impact our compile time benchmarks. We are still unable to compile the benchmark suite when fully enabling the new trait solver.

There are rare cases where the new solver has significantly worse performance due to non-fatal overflow, its reliance on fixpoint algorithms and the removal of the `fn match_fresh_trait_refs` approximation. We encountered such issues in [`typenum`](https://crates.io/crates/typenum) and believe it should be [pretty much as bad as it can get](https://github.com/rust-lang/trait-system-refactor-initiative/issues/73).

Due to an improved structure and far better caching, we believe that there is a lot of room for improvement and that the new solver will outperform the existing implementation in nearly all cases, sometimes significantly. We have not yet spent any time micro-optimizing the implementation and have many unimplemented major improvements, such as fast-paths for trivial goals.

TODO: get some rough results here and put them in a table

### Unstable features

#### Unsupported unstable features

The new solver currently does not support all unstable features, most notably `#![feature(generic_const_exprs)]`, `#![feature(associated_const_equality)]` and `#![feature(adt_const_params)]` are not yet fully supported in the new solver. We are confident that supporting them is possible, but did not consider this to be a priority. This stabilization introduces new ICE when using these features in impl headers.

#### fixes to `#![feature(specialization)]`

- fixes #105782
- fixes #118987

#### fixes to `#![feature(type_alias_impl_trait)]`

- fixes #119272
- https://github.com/rust-lang/rust/issues/105787#issuecomment-1750112388
- fixes #124207

## This does not stabilize the whole solver

While this stabilizes the use of the new solver in coherence checking, there are many parts of the solver which will remain fully unstable. We may still adapt these areas while working towards stabilizing the new solver everywhere. We are confident that we are able to do so without negatively impacting coherence.

### goals with a non-empty `ParamEnv`

Coherence always uses an empty environment. We therefore do not depend on the behavior of `AliasBound` and `ParamEnv` candidates. We only stabilizes the behavior of user-defined and builtin implementations of traits. There are still many open questions there.

### opaque types in the defining scope

The handling of opaque types - `impl Trait` - in both the new and old solver is still not fully figured out. Luckily this can be ignored for now. While opaque types are reachable during coherence checking by using `impl_trait_in_associated_types`, the behavior during coherence is separate and self-contained. The old and new solver fully agree here.

### normalization is hard

This stabilizes that we equate associated types involving bound variables using deferred-alias-equality. We also stop eagerly normalizing in coherence, which should not have any user-facing impact.

We do not stabilize the normalization behavior outside of coherence, e.g. we currently deeply normalize all types during writeback with the new solver. This may change going forward

### how to replace `select` from the old solver

We sometimes depend on getting a single `impl` for a given trait bound, e.g. when resolving a concrete method for codegen/CTFE. We do not depend on this during coherence, so the exact approach here can still be freely changed going forward.

## Acknowledgements

This work would not have been possible without `@compiler-errors.` He implemented large chunks of the solver himself but also and did a lot of testing and experimentation, eagerly discovering multiple issues which had a significant impact on our approach. `@BoxyUwU` has also done some amazing work on the solver. Thank you for the endless hours of discussion resulting in the current approach. Especially the way aliases are handled has gone through multiple revisions to get to its current state.

There were also many contributions from - and discussions with - other members of the community and the rest of `@rust-lang/types.` This solver builds upon previous improvements to the compiler, as well as lessons learned from `chalk` and `a-mir-formality`. Getting to this point  would not have been possible without that and I am incredibly thankful to everyone involved. See the [list of relevant PRs](https://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Amerged+label%3AWG-trait-system-refactor+-label%3Arollup+closed%3A%3C2024-03-22+).
2024-09-06 13:12:14 +00:00
..
abi ABI compat check: detect unadjusted ABI mismatches 2024-08-27 09:04:59 +02:00
alloc-error Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
allocator Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
annotate-snippet [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
anon-params More accurate span for anonymous argument suggestion 2024-07-18 00:19:27 +00:00
argfile compiletest: add enable-by-default check-cfg 2024-05-04 11:30:38 +02:00
argument-suggestions Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
array-slice-vec stabilize is_sorted 2024-07-28 03:11:54 +08:00
asm fix ICE when asm_const and const_refs_to_static are combined 2024-09-04 20:06:38 +02:00
associated-consts avoid creating an Instance only to immediately disassemble it again 2024-07-18 11:58:16 +02:00
associated-inherent-types Get rid of predicates_defined_on 2024-08-24 18:25:41 -04:00
associated-item Deduplicate some logic and reword output 2024-02-22 18:05:28 +00:00
associated-type-bounds Add Tests 2024-07-29 21:47:19 -04:00
associated-types stabilize -Znext-solver=coherence 2024-09-05 07:57:16 +00:00
async-await Replace walk with visit so we dont skip outermost expr kind in def collector 2024-09-01 11:16:50 -04:00
attributes New #[rustc_pub_transparent] attribute 2024-08-24 23:05:37 +03:00
auto-traits stabilize -Znext-solver=coherence 2024-09-05 07:57:16 +00:00
autoref-autoderef [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
auxiliary Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
backtrace the output in stderr expects panic-unwind 2024-07-30 08:16:47 +02:00
bench [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
binding Stabilize exclusive_range 2024-05-02 19:42:31 -04:00
binop Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
blind Accurate use rename suggestion span 2024-07-18 00:00:04 +00:00
block-result Deduplicate some logic and reword output 2024-02-22 18:05:28 +00:00
borrowck Do not rely on names to find lifetimes. 2024-08-22 02:20:05 +00:00
box Mention when type parameter could be Clone 2024-04-24 22:21:15 +00:00
btreemap Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
builtin-superkinds [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
c-variadic Use ordinal number in argument error 2024-07-14 13:50:09 +09:00
cast Arbitrary self types v2: pointers feature gate. 2024-08-27 17:32:35 +00:00
cfg fmt-debug option 2024-08-28 23:32:40 +01:00
check-cfg Port std library to RTEMS 2024-09-03 09:19:29 +02:00
closure-expected-type Make nll higher ranked equate use bidirectional subtyping in invariant context 2024-02-29 15:27:59 -03:00
closure_context Show number in error message even for one error 2023-11-24 19:15:52 +01:00
closures document & impl the transmutation modeled by BikeshedIntrinsicFrom 2024-08-23 14:37:36 +00:00
cmse-nonsecure improve error reporting 2024-07-18 14:32:10 +02:00
codegen Add a bunch of tests for #107975 2024-07-19 23:27:42 +03:00
codemap_tests Update tests 2024-08-10 12:07:17 +02:00
coercion Inline expected_inputs_for_expected_output into check_argument_types/check_expr_struct_fields 2024-08-31 16:08:29 -04:00
coherence remove unnecessary revisions 2024-09-05 07:57:17 +00:00
coinduction [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
command Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
compare-method show unit output when there is only output diff in diagnostics 2024-07-06 21:00:30 +08:00
compiletest-self-test compiletest: properly handle revisioned run-rustfix tests 2024-04-07 17:06:15 +00:00
conditional-compilation Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00:00
confuse-field-and-method Deduplicate some logic and reword output 2024-02-22 18:05:28 +00:00
const-generics stabilize -Znext-solver=coherence 2024-09-05 07:57:16 +00:00
const-ptr on a signed deref check, mention the right pointer in the error 2024-08-01 14:25:19 +02:00
const_prop Allow type_of to return partially non-error types if the type was already tainted 2024-05-28 11:55:20 +00:00
consts propagate tainted_by_errors in MirBorrowckCtxt::emit_errors 2024-09-04 20:06:33 +02:00
coroutine Create opaque definitions in resolver. 2024-08-31 20:14:43 +00:00
coverage-attr Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00:00
crate-loading Make not finding core a fatal error 2024-03-06 18:19:13 -05:00
cross Provide structured suggestion for #![feature(foo)] 2024-03-18 16:08:58 +00:00
cross-crate Closures are recursively reachable 2024-06-04 22:50:35 +02:00
custom_test_frameworks [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
cycle-trait Merge collect_mod_item_types query into check_well_formed 2024-03-07 14:26:31 +00:00
debuginfo Always use a colon in //@ normalize-*: headers 2024-07-11 12:23:44 +10:00
definition-reachable [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
delegation Rollup merge of #128524 - chenyukang:yukang-fix-127930-invalid-outer-style-sugg, r=cjgillot 2024-08-24 21:03:31 -05:00
dep-graph [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
deployment-target Avoid a couple of unnecessary EarlyDiagCtxt uses 2024-06-22 17:06:47 +00:00
deprecation Deprecate no-op codegen option -Cinline-threshold=... 2024-06-14 20:25:17 +02:00
deref-patterns Move some tests 2024-04-21 15:43:43 -03:00
derived-errors Show number in error message even for one error 2023-11-24 19:15:52 +01:00
derives Rollup merge of #127907 - RalfJung:byte_slice_in_packed_struct_with_derive, r=nnethercote 2024-08-05 05:40:19 +02:00
deriving derive(SmartPointer): assume pointee from the single generic and better error messages 2024-08-29 01:39:52 +08:00
dest-prop [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
destructuring-assignment [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
diagnostic-flags tests: remove few ignore-stage2 2024-04-25 10:48:11 +03:00
diagnostic-width Suggest using --verbose when writing type to a file 2024-02-20 23:48:59 +01:00
diagnostic_namespace Add test 2024-08-09 22:02:23 -04:00
did_you_mean Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00:00
directory_ownership [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
disallowed-deconstructing [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
dollar-crate
drop lint on tail expr drop order change in Edition 2024 2024-08-21 01:05:21 +08:00
drop-bounds [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
dropck Rollup merge of #128438 - Bryanskiy:empty-array-dropck, r=lcnr 2024-07-31 23:20:12 +02:00
dst Detect * operator on !Sized expression 2024-08-08 17:35:40 +00:00
duplicate Accurate use rename suggestion span 2024-07-18 00:00:04 +00:00
dyn-drop
dyn-keyword Rollup merge of #127692 - veera-sivarajan:bugfix-125139, r=estebank 2024-09-03 19:13:23 +02:00
dyn-star Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
dynamically-sized-types [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
editions Point out exactly what obligation will fail 2024-06-13 21:47:43 -04:00
empty More accurate suggestions when writing wrong style of enum variant literal 2024-07-18 18:20:35 +00:00
entry-point Stabilize imported_main 2024-03-06 12:01:54 +00:00
enum More accurate suggestions when writing wrong style of enum variant literal 2024-07-18 18:20:35 +00:00
enum-discriminant Update tests 2024-08-10 12:07:17 +02:00
env-macro Move option_env! and env! tests to the env-macro directory 2024-03-17 21:59:40 +00:00
error-codes stabilize -Znext-solver=coherence 2024-09-05 07:57:16 +00:00
error-emitter tests: remove some trailing ws 2024-04-27 10:54:31 +03:00
errors rewrite and rename issue-107094 to rmake 2024-07-22 10:12:00 -04:00
explicit [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
explicit-tail-calls doc fixups from review 2024-07-07 18:16:38 +02:00
expr More accurate suggestions when writing wrong style of enum variant literal 2024-07-18 18:20:35 +00:00
extern Rollup merge of #128735 - jieyouxu:pr-120176-revive, r=cjgillot 2024-08-24 21:03:31 -05:00
extern-flag Rollup merge of #125913 - fmease:early-lints-spruce-up-some-diags, r=Nadrieril 2024-06-11 09:14:34 +01:00
feature-gates Auto merge of #121848 - lcnr:stabilize-next-solver, r=compiler-errors 2024-09-06 13:12:14 +00:00
ffi-attrs Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
fmt fmt-debug option 2024-08-28 23:32:40 +01:00
fn Enforce supertrait outlives obligations hold when confirming impl 2024-08-05 09:55:14 -04:00
fn-main Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
for Report better WF obligation leaf obligations in new solver 2024-05-16 21:08:42 -04:00
for-loop-while Remove note about iteration count in coerce 2024-04-30 12:46:59 +05:30
foreign Don't ICE on Fn trait error for foreign fn 2024-08-16 14:10:06 -04:00
fuel Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
fully-qualified-type Show number in error message even for one error 2023-11-24 19:15:52 +01:00
function-pointer [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
functional-struct-update review comments 2024-04-12 20:57:07 +00:00
functions-closures [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
generic-associated-types Pretty-print own args of existential projections 2024-08-22 06:22:36 +02:00
generic-const-items Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
generics elided_named_lifetimes: bless & add tests 2024-08-31 15:35:42 +03:00
half-open-range-patterns Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00:00
hashmap compiletest: Add a //@ needs-threads directive 2024-03-06 12:35:07 -08:00
hello_world [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
higher-ranked update test description 2024-09-05 07:57:17 +00:00
hygiene Bless tests 2024-08-02 11:34:54 +00:00
illegal-sized-bound [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-header-lifetime-elision And more general error 2024-05-24 11:20:33 -04:00
impl-trait Auto merge of #121848 - lcnr:stabilize-next-solver, r=compiler-errors 2024-09-06 13:12:14 +00:00
implied-bounds Adjust tests 2024-09-05 06:37:38 -04:00
imports skip updating when external binding is existed 2024-08-20 20:34:13 +08:00
include-macros diagnostics: fix crash on completely empty included file 2024-03-29 18:22:44 -07:00
incoherent-inherent-impls Fix remaining cases 2024-06-21 19:00:18 -04:00
indexing check index value <= 0xFFFF_FF00 2024-06-01 09:40:46 +08:00
inference Rollup merge of #129664 - adetaylor:arbitrary-self-types-pointers-feature-gate, r=wesleywiser 2024-09-05 03:47:42 +02:00
infinite Automatically taint InferCtxt when errors are emitted 2024-06-26 16:01:45 +00:00
inherent-impls-overlap-check [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
inline-const Rollup merge of #128701 - veera-sivarajan:fix-128604, r=estebank 2024-09-03 19:13:23 +02:00
instrument-coverage Fix remaining cases 2024-06-21 19:00:18 -04:00
instrument-xray [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
interior-mutability rename 'try' intrinsic to 'catch_unwind' 2024-02-26 11:10:18 +01:00
internal stabilize const_fn_floating_point_arithmetic 2024-08-22 08:25:54 +02:00
internal-lints Use the rustc_private libc less in tests 2024-04-15 08:54:11 -04:00
intrinsics interpret: add missing alignment check in raw_eq 2024-08-27 19:29:52 +02:00
invalid [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
invalid-compile-flags Add --print=check-cfg to get the expected configs 2024-04-25 07:58:31 +02:00
invalid-module-declaration Show number in error message even for one error 2023-11-24 19:15:52 +01:00
invalid-self-argument Show number in error message even for one error 2023-11-24 19:15:52 +01:00
io-checks Always use a colon in //@ normalize-*: headers 2024-07-11 12:23:44 +10:00
issues stabilize -Znext-solver=coherence 2024-09-05 07:57:16 +00:00
iterators Gate the type length limit check behind a nightly flag 2024-07-12 21:16:09 -04:00
json On short error format, append primary span label to message 2024-08-06 04:08:10 +00:00
keyword Structured suggestion for extern crate foo when foo isn't resolved in import 2024-07-29 23:49:51 +00:00
kindck Harmonize use of leaf and root obligation in trait error reporting 2024-06-12 20:57:23 -04:00
label Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00:00
lang-items Let InstCombine remove Clone shims inside Clone shims 2024-07-25 15:14:42 -04:00
late-bound-lifetimes Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
layout Rollup merge of #126152 - RalfJung:size_of_val_raw, r=saethlin 2024-07-24 18:00:35 +02:00
lazy-type-alias LTA: Diag: Detect bivariant ty params that are only used recursively 2024-07-19 18:53:40 +02:00
lazy-type-alias-impl-trait [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else Make ; suggestions inline 2024-07-12 03:22:32 +00:00
lexer Be more accurate about calculating display_col from a BytePos 2024-07-18 20:08:38 +00:00
lifetimes elided_named_lifetimes: bless & add tests 2024-08-31 15:35:42 +03:00
limits Always use a colon in //@ normalize-*: headers 2024-07-11 12:23:44 +10:00
linkage-attr unreferenced-used-static: run test everywhere 2024-06-29 13:02:59 +02:00
lint Auto merge of #127313 - cjgillot:single-expect, r=jieyouxu 2024-09-01 15:50:48 +00:00
liveness Better span for "make binding mutable" suggestion 2024-07-04 02:02:21 +00:00
loops Fix ... in multline code-skips in suggestions 2024-06-20 04:25:17 +00:00
lowering Change wording 2024-04-29 14:53:38 +02:00
lto Don't output test artifacts into working directory 2024-07-21 13:45:55 -04:00
lub-glb Rollup merge of #121475 - jieyouxu:tidy-stderr-check, r=the8472,compiler-errors 2024-03-01 17:51:29 +01:00
macro_backtrace [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
macros stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
malformed Be more accurate about calculating display_col from a BytePos 2024-07-18 20:08:38 +00:00
manual Make more of the test suite run on Mac Catalyst 2024-05-28 12:31:33 +02:00
marker_trait_attr Always make inductive cycles as ambig during typeck 2024-03-31 20:44:30 -04:00
match Match ergonomics 2024: test type inference 2024-07-05 11:17:49 -04:00
meta Handle a few more simple tests 2024-05-20 11:13:10 -04:00
methods Do not ICE on non-ADT rcvr type when looking for crate version collision 2024-08-26 13:02:21 -04:00
mir stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
mir-dataflow
mismatched_types Rollup merge of #125042 - long-long-float:suggest-move-arg-outside, r=fmease 2024-07-17 16:22:26 +02:00
missing [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
missing-trait-bounds Use fulfillment, not evaluate, during method probe 2024-04-21 20:10:12 -04:00
missing_non_modrs_mod [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
modules Move tests 2024-04-07 17:38:07 -03:00
modules_and_files_visibility [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
moves Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
mut Better span for "make binding mutable" suggestion 2024-07-04 02:02:21 +00:00
namespace Tweak output of import suggestions 2024-06-13 20:22:21 +00:00
native-library-link-flags Always use a colon in //@ normalize-*: headers 2024-07-11 12:23:44 +10:00
never_type Update tests 2024-08-10 12:07:17 +02:00
nll Create opaque definitions in resolver. 2024-08-31 20:14:43 +00:00
no_std [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
non_modrs_mods [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
non_modrs_mods_and_inline_mods [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
not-panic Provide more context on derived obligation error primary label 2024-01-30 21:28:18 +00:00
numbers-arithmetic Rollup merge of #126127 - Alexendoo:other-trait-diag, r=pnkfelix 2024-06-16 03:41:57 -04:00
numeric Tweak "field not found" suggestion when giving struct literal for tuple struct type 2024-07-18 18:20:35 +00:00
object-lifetime elided_named_lifetimes: bless & add tests 2024-08-31 15:35:42 +03:00
object-safety Rollup merge of #127692 - veera-sivarajan:bugfix-125139, r=estebank 2024-09-03 19:13:23 +02:00
obsolete-in-place
offset-of Normalize when computing offset_of for slice tail 2024-08-08 11:58:11 -04:00
on-unimplemented Spell out other trait diagnostic 2024-06-12 12:34:47 +00:00
operator-recovery Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00:00
or-patterns Reword the "unreachable pattern" explanations 2024-08-19 21:39:57 +02:00
overloaded [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
packed stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
panic-handler Always use a colon in //@ normalize-*: headers 2024-07-11 12:23:44 +10:00
panic-runtime Enable a few tests on macOS 2024-05-28 12:31:12 +02:00
panics Bless tests 2024-08-02 11:34:54 +00:00
parallel-rustc [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
parser Rollup merge of #128524 - chenyukang:yukang-fix-127930-invalid-outer-style-sugg, r=cjgillot 2024-08-24 21:03:31 -05:00
patchable-function-entry Updated diagnostic messages 2024-06-27 22:24:36 +02:00
pattern Don't make pattern nonterminals match statement nonterminals 2024-08-26 18:30:15 -04:00
pin-macro [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
polymorphization Don't inline tainted MIR bodies 2024-08-08 20:53:25 -04:00
precondition-checks Fix revisions syntax 2024-04-11 17:53:27 -04:00
print_type_sizes Error on using yield without also using #[coroutine] on the closure 2024-04-24 08:05:29 +00:00
privacy Use FnSig instead of raw FnDecl for ForeignItemKind::Fn 2024-08-16 14:10:06 -04:00
proc-macro Fix bug in Parser::look_ahead. 2024-08-12 13:00:12 +10:00
process Bless tests 2024-08-02 11:34:54 +00:00
process-termination compiletest: Add a //@ needs-threads directive 2024-03-06 12:35:07 -08:00
ptr_ops [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
pub Bless test fallout 2024-08-03 07:57:31 -04:00
qualified Show number in error message even for one error 2023-11-24 19:15:52 +01:00
query-system [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
range Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00:00
raw-ref-op stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
reachable Move the "matches no value" note to be a span label 2024-08-20 21:53:47 +02:00
recursion Gate the type length limit check behind a nightly flag 2024-07-12 21:16:09 -04:00
recursion_limit [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
regions Point at explicit 'static obligations on a trait 2024-08-21 16:40:15 +00:00
repeat-expr Account for let foo = expr; to suggest const foo: Ty = expr; 2024-07-11 20:39:24 +00:00
repr repr_transparent_external_private_fields: treat rustc_pub_transparent types as local 2024-08-24 23:05:54 +03:00
reserved Supress unhelpful diagnostics for unresolved top level attributes 2024-01-29 17:43:07 +08:00
resolve Don't consider RibKind::Module's bindings when checking generics shadowing 2024-08-19 17:24:27 -04:00
return Fixing span manipulation and indentation of the suggestion introduced by #126187 2024-08-25 20:30:06 +08:00
rfcs Non-exhaustive structs may be empty 2024-09-02 21:16:37 +02:00
rmeta [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
runtime Disable stack overflow handler tests on iOS-like platforms 2024-05-28 12:31:12 +02:00
rust-2018 diagnostics: do not warn when a lifetime bound infers itself 2024-08-09 16:16:16 -07:00
rust-2021 Detect unused structs which implement private traits 2024-05-23 09:07:59 +08:00
rust-2024 Auto merge of #128771 - carbotaniuman:stabilize_unsafe_attr, r=nnethercote 2024-08-17 22:48:42 +00:00
rustc-env note value of RUST_MIN_STACK and explain unsetting 2024-05-19 20:09:03 -07:00
rustdoc Be more accurate about calculating display_col from a BytePos 2024-07-18 20:08:38 +00:00
sanitizer Rollup merge of #129179 - compiler-errors:cfi-erase-transparent, r=davidtwco 2024-08-21 18:15:02 +02:00
self Rollup merge of #129664 - adetaylor:arbitrary-self-types-pointers-feature-gate, r=wesleywiser 2024-09-05 03:47:42 +02:00
sepcomp [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
shadowed Tweak wording of "implemented trait isn't imported" suggestion 2024-02-22 18:05:27 +00:00
shell-argfiles compiletest: add enable-by-default check-cfg 2024-05-04 11:30:38 +02:00
simd simd_shuffle intrinsic: allow argument to be passed as vector (not just as array) 2024-08-13 07:51:17 +02:00
single-use-lifetime Add test to check unused_lifetimes don't duplicate "parameter is never used" error 2024-03-09 18:24:45 +00:00
sized Detect * operator on !Sized expression 2024-08-08 17:35:40 +00:00
span Do not underline suggestions for code that is already there 2024-08-01 18:53:42 +00:00
specialization rebase and update fixed crashes 2024-09-05 07:57:17 +00:00
stability-attribute Migrate tests to use -Znext-solver 2024-06-30 17:08:45 +00:00
stable-mir-print Set up false edges in lower_match_tree 2024-07-29 09:50:07 +02:00
stack-protector [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
static propagate tainted_by_errors in MirBorrowckCtxt::emit_errors 2024-09-04 20:06:33 +02:00
statics WF-check struct field types at construction site 2024-08-05 17:37:12 -07:00
stats ignore/fix layout-sensitive tests 2024-08-31 23:56:45 +02:00
std More robust extension checking 2024-09-03 14:36:21 +02:00
stdlib-unit-tests Move various stdlib tests to library/std/tests 2024-04-28 16:10:12 -04:00
str Be more accurate about calculating display_col from a BytePos 2024-07-18 20:08:38 +00:00
structs Test more cases of WF-checking for fields 2024-08-05 17:56:50 -07:00
structs-enums ignore/fix layout-sensitive tests 2024-08-31 23:56:45 +02:00
suggestions elided_named_lifetimes: bless & add tests 2024-08-31 15:35:42 +03:00
svh [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
symbol-mangling-version [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
symbol-names Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
sync Add manual Sync impl for ReentrantLockGuard 2024-05-24 17:44:37 -07:00
target-feature Revert "Auto merge of #127537 - veluca93:struct_tf, r=BoxyUwU" 2024-09-01 16:35:53 +02:00
test-attrs Update name of Windows abort constant to match platform documentation 2024-07-15 22:21:41 +00:00
thir-print report pat no field error no recoverd struct variant 2024-07-11 00:18:47 +08:00
thread-local compiletest: Add a //@ needs-threads directive 2024-03-06 12:35:07 -08:00
threads-sendsync format code in tests/ui/threads-sendsync 2024-08-24 05:32:52 +02:00
tool-attributes Fix diagnostic and add a test for it 2024-07-10 18:56:06 -04:00
track-diagnostics Always use a colon in //@ normalize-*: headers 2024-07-11 12:23:44 +10:00
trait-bounds Fix malformed suggestion for repeated maybe unsized bounds 2024-07-14 17:46:25 +05:30
traits stabilize -Znext-solver=coherence 2024-09-05 07:57:16 +00:00
transmutability rebase and update fixed crashes 2024-09-05 07:57:17 +00:00
transmute Always use a colon in //@ normalize-*: headers 2024-07-11 12:23:44 +10:00
treat-err-as-bug Always use a colon in //@ normalize-*: headers 2024-07-11 12:23:44 +10:00
trivial-bounds Improve the impl and diag output of lint type_alias_bounds 2024-07-23 01:48:03 +02:00
try-block Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
try-trait Fixing span manipulation and indentation of the suggestion introduced by #126187 2024-08-25 20:30:06 +08:00
tuple Use ordinal number in argument error 2024-07-14 13:50:09 +09:00
type Add tracking issue to core-pattern-type 2024-08-07 20:43:05 -04:00
type-alias Suggest full trait ref (with placeholders) on unresolved assoc tys 2024-07-23 01:26:25 +02:00
type-alias-enum-variants Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
type-alias-impl-trait Auto merge of #121848 - lcnr:stabilize-next-solver, r=compiler-errors 2024-09-06 13:12:14 +00:00
type-inference make invalid_type_param_default lint show up in cargo future-compat reports 2024-07-15 22:05:45 +02:00
typeck Retroactively feature gate ConstArgKind::Path 2024-08-19 01:14:22 +01:00
typeof Account for let foo = expr; to suggest const foo: Ty = expr; 2024-07-11 20:39:24 +00:00
ufcs Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
unboxed-closures Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
underscore-imports Structured suggestion for extern crate foo when foo isn't resolved in import 2024-07-29 23:49:51 +00:00
underscore-lifetime make type_flags(ReError) & HAS_ERROR 2024-03-20 17:29:58 +00:00
uniform-paths [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
uninhabited Move the "matches no value" note to be a span label 2024-08-20 21:53:47 +02:00
union Mention when type parameter could be Clone 2024-04-24 22:21:15 +00:00
unknown-unstable-lints [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unop Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
unpretty stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
unresolved Structured suggestion for extern crate foo when foo isn't resolved in import 2024-07-29 23:49:51 +00:00
unsafe Don't Suggest Labeling const and unsafe Blocks 2024-08-06 14:50:09 -04:00
unsized Detect * operator on !Sized expression 2024-08-08 17:35:40 +00:00
unsized-locals add issue numbers via // issue: rust-lang/rust#ISSUE_NUM directive 2024-03-24 09:34:11 +01:00
unused-crate-deps Spruce up the diagnostics of some early lints 2024-06-03 07:25:32 +02:00
unwind-abis Remove c_unwind from tests and fix tests 2024-06-19 13:54:55 +01:00
use Make early lints translatable 2024-05-21 20:16:39 +00:00
variance Print the generic parameter along with the variance in dumps. 2024-08-23 23:00:45 +00:00
variants Accurate use rename suggestion span 2024-07-18 00:00:04 +00:00
version Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
warnings tests/ui: Add a directory for warnings, add a test 2024-03-22 11:27:34 -04:00
wasm [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
wf Enforce supertrait outlives obligations hold when confirming impl 2024-08-05 09:55:14 -04:00
where-clauses Taint infcx when reporting errors 2024-06-19 04:41:56 +00:00
while Show number in error message even for one error 2023-11-24 19:15:52 +01:00
windows-subsystem rewrite test-harness to rmake 2024-07-02 11:37:59 -04:00
zero-sized [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
.gitattributes
alias-uninit-value.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
allow-non-lint-warnings.rs Make run-make/allow-non-lint-warnings-cmdline into a ui test 2024-06-13 12:55:55 +02:00
anonymous-higher-ranked-lifetime.rs
anonymous-higher-ranked-lifetime.stderr Remove Partial/Ord from BoundRegion 2024-03-27 14:02:16 +00:00
artificial-block.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
as-precedence.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
assign-assign.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
assign-imm-local-twice.rs Better span for "make binding mutable" suggestion 2024-07-04 02:02:21 +00:00
assign-imm-local-twice.stderr Better span for "make binding mutable" suggestion 2024-07-04 02:02:21 +00:00
assoc-lang-items.rs
assoc-lang-items.stderr consistency rename: language item -> lang item 2024-04-17 13:00:43 +02:00
assoc-oddities-3.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
associated-path-shl.rs
associated-path-shl.stderr
atomic-from-mut-not-available.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
atomic-from-mut-not-available.stderr fix test 2024-02-22 18:05:28 +00:00
attempted-access-non-fatal.rs
attempted-access-non-fatal.stderr
attr-bad-crate-attr.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
attr-bad-crate-attr.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
attr-shebang.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
attr-start.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
attr-usage-inline.rs
attr-usage-inline.stderr
attrs-resolution-errors.rs
attrs-resolution-errors.stderr
attrs-resolution.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
augmented-assignments-feature-gate-cross.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
augmented-assignments-rpass.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
augmented-assignments.rs Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
augmented-assignments.stderr Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
auto-instantiate.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
auto-ref-slice-plus-ref.rs
auto-ref-slice-plus-ref.stderr Consider methods from traits when suggesting typos 2024-02-22 18:04:55 +00:00
autoderef-full-lval.rs
autoderef-full-lval.stderr Change E0369 diagnostic give note information for foreign items. 2024-06-25 10:00:30 +08:00
bare-fn-implements-fn-mut.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
bare-static-string.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
big-literals.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
bind-by-move.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
bitwise.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
bogus-tag.rs
bogus-tag.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
borrow-by-val-method-receiver.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
bounds-lifetime.rs Simple modification of diagnostic information 2023-12-21 10:17:11 +08:00
bounds-lifetime.stderr Bless tests 2024-01-13 12:46:58 -05:00
break-diverging-value.rs
break-diverging-value.stderr
builtin-clone-unwind.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
can-copy-pod.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
cancel-clean-via-immediate-rvalue-ref.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
cannot-mutate-captured-non-mut-var.rs
cannot-mutate-captured-non-mut-var.stderr More accurate mutability suggestion 2024-07-04 05:36:34 +00:00
capture1.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
capture1.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
catch-unwind-bang.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
cenum_impl_drop_cast.rs
cenum_impl_drop_cast.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
cfguard-run.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
char.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
class-cast-to-trait.rs Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
class-cast-to-trait.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
class-method-missing.rs
class-method-missing.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
cleanup-rvalue-for-scope.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
cleanup-rvalue-scopes-cf.rs
cleanup-rvalue-scopes-cf.stderr
cleanup-rvalue-scopes.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
cleanup-rvalue-temp-during-incomplete-alloc.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
cleanup-shortcircuit.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
close-over-big-then-small-data.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
command-line-diagnostics.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
command-line-diagnostics.stderr Better span for "make binding mutable" suggestion 2024-07-04 02:02:21 +00:00
complex.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
conservative_impl_trait.rs
conservative_impl_trait.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
constructor-lifetime-args.rs
constructor-lifetime-args.stderr Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
copy-a-resource.rs
copy-a-resource.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
crate-leading-sep.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
crate-method-reexport-grrrrrrr.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
crate-name-attr-used.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
crate-name-mismatch.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
crate-name-mismatch.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
custom-attribute-multisegment.rs
custom-attribute-multisegment.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
custom-test-frameworks-simple.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
custom_attribute.rs
custom_attribute.stderr
deduplicate-diagnostics.deduplicate.stderr
deduplicate-diagnostics.duplicate.stderr
deduplicate-diagnostics.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
deep.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
default-method-parsing.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
default-method-simple.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
defaults-well-formedness.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
deprecation-in-force-unstable.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
deref-non-pointer.rs
deref-non-pointer.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
deref-rc.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
deref.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
derive-uninhabited-enum-38885.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
derive-uninhabited-enum-38885.stderr Adjust compiler tests for unused_tuple_struct_fields -> dead_code 2024-01-02 15:34:37 -05:00
destructure-trait-ref.rs
destructure-trait-ref.stderr
diverging-fallback-method-chain.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
diverging-fallback-option.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
diverging-fn-tail-35849.rs
diverging-fn-tail-35849.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
double-ref.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
double-type-import.rs
double-type-import.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
dupe-first-attr.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
duplicate-label-E0381-issue-129274.rs Deduplicate Spans in Uninitialized Check 2024-08-22 09:36:14 -07:00
duplicate-label-E0381-issue-129274.stderr Deduplicate Spans in Uninitialized Check 2024-08-22 09:36:14 -07:00
duplicate_entry_error.rs Always use a colon in //@ normalize-*: headers 2024-07-11 12:23:44 +10:00
duplicate_entry_error.stderr Rename std::panic::PanicInfo to PanicHookInfo. 2024-06-11 15:47:00 +02:00
early-ret-binop-add.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
elide-errors-on-mismatched-tuple.rs
elide-errors-on-mismatched-tuple.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
elided-test.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
elided-test.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
else-if.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
empty-allocation-non-null.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
empty-allocation-rvalue-non-null.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
empty-type-parameter-list.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
empty-type-parameter-list.stderr Update tests 2024-02-07 10:42:01 +08:00
error-festival.rs
error-festival.stderr
error-should-say-copy-not-pod.rs
error-should-say-copy-not-pod.stderr Detect when method call on argument could be removed to fulfill failed trait bound 2024-02-16 04:28:05 +00:00
exclusive-drop-and-copy.rs
exclusive-drop-and-copy.stderr
explain.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
explain.stdout
explicit-i-suffix.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
explore-issue-38412.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
explore-issue-38412.stderr Bless tests 2024-01-13 12:46:58 -05:00
ext-expand-inner-exprs.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
ext-nonexistent.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
ext-nonexistent.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
fact.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
fail-simple.rs
fail-simple.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
filter-block-view-items.rs Unify all the always-false cfgs under the FALSE cfg 2024-04-07 01:16:45 +02:00
format-no-std.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
fun-indirect-call.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
future-incompatible-lint-group.rs Update ui tests 2024-02-29 14:43:43 +01:00
future-incompatible-lint-group.stderr Update ui tests 2024-02-29 14:43:43 +01:00
global-scope.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
hello.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
illegal-ufcs-drop.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
illegal-ufcs-drop.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
illegal-ufcs-drop.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
impl-inherent-non-conflict.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-not-adjacent-to-type.rs Allow unused fields in some tests 2024-03-12 10:59:41 +01:00
impl-privacy-xc-1.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-unused-rps-in-assoc-type.rs
impl-unused-rps-in-assoc-type.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
impl-unused-tps-inherent.rs
impl-unused-tps-inherent.stderr
impl-unused-tps.rs stabilize -Znext-solver=coherence 2024-09-05 07:57:16 +00:00
impl-unused-tps.stderr stabilize -Znext-solver=coherence 2024-09-05 07:57:16 +00:00
implicit-method-bind.rs
implicit-method-bind.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
inline-disallow-on-variant.rs
inline-disallow-on-variant.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
inlined-main.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
inner-attrs-on-impl.rs Unify all the always-false cfgs under the FALSE cfg 2024-04-07 01:16:45 +02:00
inner-module.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
inner-static-type-parameter.rs
inner-static-type-parameter.stderr Rollup merge of #119939 - clubby789:static-const-generic-note, r=compiler-errors 2024-02-06 22:45:39 +01:00
inner-static.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
integral-indexing.rs
integral-indexing.stderr Provide more context on derived obligation error primary label 2024-01-30 21:28:18 +00:00
integral-variable-unification-error.rs
integral-variable-unification-error.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
invalid_crate_type_syntax.rs
invalid_crate_type_syntax.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
invalid_dispatch_from_dyn_impls.rs
invalid_dispatch_from_dyn_impls.stderr
issue-11881.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-13560.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-15924.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-16822.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-18502.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-24106.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-76387-llvm-miscompile.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issues-71798.rs
issues-71798.stderr Use root obligation on E0277 for some cases 2024-03-03 18:53:35 +00:00
item-name-overload.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
kinds-in-metadata.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
kinds-of-primitive-impl.rs Continue compilation even if inherent impl checks fail 2024-02-14 21:04:51 +00:00
kinds-of-primitive-impl.stderr Continue compilation even if inherent impl checks fail 2024-02-14 21:04:51 +00:00
last-use-in-block.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
last-use-in-cap-clause.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
last-use-is-capture.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
lazy-and-or.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
lexical-scopes.rs
lexical-scopes.stderr
lexical-scoping.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
link-section.rs Make more of the test suite run on Mac Catalyst 2024-05-28 12:31:33 +02:00
list.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
log-err-phi.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
log-knows-the-names-of-variants.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
log-poly.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
logging-only-prints-once.rs compiletest: Add a //@ needs-threads directive 2024-03-06 12:35:07 -08:00
loud_ui.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
max-min-classes.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
maximal_mir_to_hir_coverage.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
maybe-bounds.rs
maybe-bounds.stderr Support ?Trait bounds in supertraits and dyn Trait under a feature gate 2024-07-25 20:53:33 +03:00
method-output-diff-issue-127263.rs show unit output when there is only output diff in diagnostics 2024-07-06 21:00:30 +08:00
method-output-diff-issue-127263.stderr show unit output when there is only output diff in diagnostics 2024-07-06 21:00:30 +08:00
minus-string.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
minus-string.stderr Change E0369 diagnostic give note information for foreign items. 2024-06-25 10:00:30 +08:00
missing_debug_impls.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
missing_debug_impls.stderr
mod-subitem-as-enum-variant.rs
mod-subitem-as-enum-variant.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
monomorphize-abi-alignment.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
msvc-data-only.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
msvc-opt-minsize.rs rewrite test-harness to rmake 2024-07-02 11:37:59 -04:00
multibyte.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
multiline-comment.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
mut-function-arguments.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
mutual-recursion-group.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
myriad-closures.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nested-block-comment.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nested-cfg-attrs.rs Unify all the always-false cfgs under the FALSE cfg 2024-04-07 01:16:45 +02:00
nested-cfg-attrs.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
nested-class.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nested-ty-params.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nested-ty-params.stderr
new-impl-syntax.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
new-import-syntax.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
new-style-constants.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
new-unicode-escapes.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
newlambdas.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
newtype-polymorphic.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
newtype.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
no-capture-arc.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
no-capture-arc.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
no-core-1.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
no-core-2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
no-link-unknown-crate.rs
no-link-unknown-crate.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
no-reuse-move-arc.rs
no-reuse-move-arc.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
no-send-res-ports.rs
no-send-res-ports.stderr Provide more context on derived obligation error primary label 2024-01-30 21:28:18 +00:00
no-warn-on-field-replace-issue-34101.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
no_crate_type.rs
no_crate_type.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
no_send-enum.rs
no_send-enum.stderr Provide more context on derived obligation error primary label 2024-01-30 21:28:18 +00:00
no_send-rc.rs
no_send-rc.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
no_share-enum.rs
no_share-enum.stderr Provide more context on derived obligation error primary label 2024-01-30 21:28:18 +00:00
no_share-struct.rs
no_share-struct.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
noexporttypeexe.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
noexporttypeexe.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
non-constant-expr-for-arr-len.rs
non-constant-expr-for-arr-len.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
non-copyable-void.rs Use the rustc_private libc less in tests 2024-04-15 08:54:11 -04:00
non-copyable-void.stderr Use the rustc_private libc less in tests 2024-04-15 08:54:11 -04:00
non-fmt-panic.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
non-fmt-panic.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
non-fmt-panic.stderr
noncopyable-class.rs
noncopyable-class.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
nonscalar-cast.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nonscalar-cast.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nonscalar-cast.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
not-clone-closure.rs
not-clone-closure.stderr Provide more context on derived obligation error primary label 2024-01-30 21:28:18 +00:00
not-copy-closure.rs
not-copy-closure.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
not-enough-arguments.rs
not-enough-arguments.stderr Use ordinal number in argument error 2024-07-14 13:50:09 +09:00
nul-characters.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nullable-pointer-iotareduction.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nullable-pointer-size.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
object-pointer-types.rs
object-pointer-types.stderr Deduplicate some logic and reword output 2024-02-22 18:05:28 +00:00
objects-coerce-freeze-borrored.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
occurs-check-2.rs change error messages to be incorrect, but more helpful 2024-02-22 18:18:33 +01:00
occurs-check-2.stderr change error messages to be incorrect, but more helpful 2024-02-22 18:18:33 +01:00
occurs-check-3.rs change error messages to be incorrect, but more helpful 2024-02-22 18:18:33 +01:00
occurs-check-3.stderr change error messages to be incorrect, but more helpful 2024-02-22 18:18:33 +01:00
occurs-check.rs change error messages to be incorrect, but more helpful 2024-02-22 18:18:33 +01:00
occurs-check.stderr change error messages to be incorrect, but more helpful 2024-02-22 18:18:33 +01:00
once-cant-call-twice-on-heap.rs
once-cant-call-twice-on-heap.stderr Better account for FnOnce in move errors 2024-04-11 16:41:42 +00:00
oom_unwind.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
op-assign-builtins-by-ref.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
opeq.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
opt-in-copy.rs
opt-in-copy.stderr
optimization-remark.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
out-pointer-aliasing.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
output-slot-variants.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
over-constrained-vregs.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
panic-while-printing.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
panic_implementation-closures.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
paren-span.rs
paren-span.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
partialeq_help.rs
partialeq_help.stderr Provide better suggestions for T == &T and &T == T 2023-12-16 19:56:50 -08:00
path-lookahead.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
path-lookahead.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
path-lookahead.stderr
path.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
paths-containing-nul.rs Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
phantom-auto-trait.rs
phantom-auto-trait.stderr
point-to-type-err-cause-on-impl-trait-return-2.rs
point-to-type-err-cause-on-impl-trait-return-2.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
pptypedef.rs
pptypedef.stderr
primitive-binop-lhs-mut.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
print-calling-conventions.rs Migrate run-make/print-calling-conventions to ui-test 2024-08-03 20:09:42 -04:00
print-calling-conventions.stdout Migrate run-make/print-calling-conventions to ui-test 2024-08-03 20:09:42 -04:00
print-stdout-eprint-stderr.rs Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
project-cache-issue-31849.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
ptr-coercion-rpass.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
ptr-coercion.rs
ptr-coercion.stderr
query-visibility.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
raw-str.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
README.md Implement infra support for migrating from // to //@ ui test directives 2024-02-16 19:40:23 +00:00
realloc-16687.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
reassign-ref-mut.rs
reassign-ref-mut.stderr
reexport-test-harness-main.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
removing-extern-crate.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
removing-extern-crate.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
removing-extern-crate.stderr
resource-assign-is-not-copy.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
resource-destruct.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
rustc-error.rs
rustc-error.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
seq-args.rs
seq-args.stderr Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
shadow-bool.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
shadowed-use-visibility.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
short-error-format.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
short-error-format.stderr On short error format, append primary span label to message 2024-08-06 04:08:10 +00:00
sized-borrowed-pointer.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
sized-cycle-note.rs
sized-cycle-note.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
sized-owned-pointer.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
sse2.rs sudo CI=green && Review changes <3 2024-06-25 18:06:22 +02:00
stable-addr-of.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
std-uncopyable-atomics.rs
std-uncopyable-atomics.stderr
stdio-is-blocking.rs Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
string-box-error.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
struct-ctor-mangling.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
super-at-top-level.rs
super-at-top-level.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
super.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
svh-add-nothing.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
swap-1.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
swap-overlapping.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
switched-expectations.rs
switched-expectations.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
syntax-extension-minor.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
tag-type-args.rs Avoid silencing relevant follow-up errors 2024-01-09 21:08:16 +00:00
tag-type-args.stderr Merge collect_mod_item_types query into check_well_formed 2024-03-07 14:26:31 +00:00
tag-variant-cast-non-nullary.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
tag-variant-cast-non-nullary.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
tag-variant-cast-non-nullary.stderr Emit more specific diagnostics when enums fail to cast with as 2024-02-09 09:19:44 +05:30
tail-call-arg-leak.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
tail-cps.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
tail-typeck.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
tail-typeck.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
trailing-comma.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
trait-method-number-parameters.rs
trait-method-number-parameters.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
transmute-equal-assoc-types.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
transmute-non-immediate-to-immediate.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
trivial_casts-rpass.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
trivial_casts-rpass.stderr Update tests 2024-02-07 10:42:01 +08:00
try-from-int-error-partial-eq.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
try-operator-hygiene.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
try-operator.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
tydesc-name.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
type-id-higher-rank-2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
type-namespace.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
type-param-constraints.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
type-param.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
type-ptr.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
type-use-i1-versus-i8.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
type_length_limit.polonius.stderr Manual find replace updates 2023-11-24 21:04:51 +01:00
type_length_limit.rs Gate the type length limit check behind a nightly flag 2024-07-12 21:16:09 -04:00
type_length_limit.stderr Re-implement a type-size based limit 2024-07-02 15:48:48 -04:00
typeid-intrinsic.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
typestate-multi-decl.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unconstrained-none.rs
unconstrained-none.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
unconstrained-ref.rs
unconstrained-ref.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
underscore-ident-matcher.rs
underscore-ident-matcher.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
underscore-lifetimes.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
underscore-method-after-integer.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unevaluated_fixed_size_array_len.rs
unevaluated_fixed_size_array_len.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
uninit-empty-types.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unit.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unknown-language-item.rs consistency rename: language item -> lang item 2024-04-17 13:00:43 +02:00
unknown-language-item.stderr consistency rename: language item -> lang item 2024-04-17 13:00:43 +02:00
unknown-llvm-arg.rs Always use a colon in //@ normalize-*: headers 2024-07-11 12:23:44 +10:00
unknown-llvm-arg.stderr
unnamed_argument_mode.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unreachable-code-1.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unreachable-code.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unsigned-literal-negation.rs
unsigned-literal-negation.stderr Tweak -1 as usize suggestion 2024-07-05 00:52:01 +00:00
unused-move-capture.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unused-move.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unwind-no-uwtable.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
use-import-export.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
use-keyword-2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
use-module-level-int-consts.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
use-nested-groups.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
used.rs
used.stderr Show used attribute's kind for user when find it isn't applied to a static variable. 2024-06-29 19:39:09 +08:00
using-target-feature-unstable.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
usize-generic-argument-parent.rs
usize-generic-argument-parent.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
utf8-bom.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
utf8_idents.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
wait-forked-but-failed-child.rs Handle a few more simple tests 2024-05-20 11:13:10 -04:00
walk-struct-literal-with.rs
walk-struct-literal-with.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
weak-new-uninhabited-issue-48493.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
weird-exit-code.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
weird-exprs.rs Error on using yield without also using #[coroutine] on the closure 2024-04-24 08:05:29 +00:00
write-fmt-errors.rs io::Write::write_fmt: panic if the formatter fails when the stream does not fail 2024-05-11 15:13:18 +02:00
writing-to-immutable-vec.rs
writing-to-immutable-vec.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
wrong-hashset-issue-42918.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00

UI Tests

This folder contains rustc's UI tests.

Test Directives (Headers)

Typically, a UI test will have some test directives / headers which are special comments that tell compiletest how to build and intepret a test.

As part of an on-going effort to rewrite compiletest (see https://github.com/rust-lang/compiler-team/issues/536), a major change proposal to change legacy compiletest-style headers // <directive> to ui_test-style headers //@ <directive> was accepted (see https://github.com/rust-lang/compiler-team/issues/512.

An example directive is ignore-test. In legacy compiletest style, the header would be written as

// ignore-test

but in ui_test style, the header would be written as

//@ ignore-test

compiletest is changed to accept only //@ directives for UI tests (currently), and will reject and report an error if it encounters any comments // <content> that may be parsed as an legacy compiletest-style test header. To fix this, you should migrate to the ui_test-style header //@ <content>.