rust/tests/ui/feature-gates
bors f4f0fafd0c Auto merge of #132706 - compiler-errors:async-closures, r=oli-obk
Stabilize async closures (RFC 3668)

# Async Closures Stabilization Report

This report proposes the stabilization of `#![feature(async_closure)]` ([RFC 3668](https://rust-lang.github.io/rfcs/3668-async-closures.html)). This is a long-awaited feature that increases the expressiveness of the Rust language and fills a pressing gap in the async ecosystem.

## Stabilization summary

* You can write async closures like `async || {}` which return futures that can borrow from their captures and can be higher-ranked in their argument lifetimes.
* You can express trait bounds for these async closures using the `AsyncFn` family of traits, analogous to the `Fn` family.

```rust
async fn takes_an_async_fn(f: impl AsyncFn(&str)) {
    futures::join(f("hello"), f("world")).await;
}

takes_an_async_fn(async |s| { other_fn(s).await }).await;
```

## Motivation

Without this feature, users hit two major obstacles when writing async code that uses closures and `Fn` trait bounds:

- The inability to express higher-ranked async function signatures.
- That closures cannot return futures that borrow from the closure captures.

That is, for the first, we cannot write:

```rust
// We cannot express higher-ranked async function signatures.
async fn f<Fut>(_: impl for<'a> Fn(&'a u8) -> Fut)
where
    Fut: Future<Output = ()>,
{ todo!() }

async fn main() {
    async fn g(_: &u8) { todo!() }
    f(g).await;
    //~^ ERROR mismatched types
    //~| ERROR one type is more general than the other
}
```

And for the second, we cannot write:

```rust
// Closures cannot return futures that borrow closure captures.
async fn f<Fut: Future<Output = ()>>(_: impl FnMut() -> Fut)
{ todo!() }

async fn main() {
    let mut xs = vec![];
    f(|| async {
        async fn g() -> u8 { todo!() }
        xs.push(g().await);
    });
    //~^ ERROR captured variable cannot escape `FnMut` closure body
}
```

Async closures provide a first-class solution to these problems.

For further background, please refer to the [motivation section](https://rust-lang.github.io/rfcs/3668-async-closures.html#motivation) of the RFC.

## Major design decisions since RFC

The RFC had left open the question of whether we would spell the bounds syntax for async closures...

```rust
// ...as this...
fn f() -> impl AsyncFn() -> u8 { todo!() }
// ...or as this:
fn f() -> impl async Fn() -> u8 { todo!() }
```

We've decided to spell this as `AsyncFn{,Mut,Once}`.

The `Fn` family of traits is special in many ways.  We had originally argued that, due to this specialness, that perhaps the `async Fn` syntax could be adopted without having to decide whether a general `async Trait` mechanism would ever be adopted.  However, concerns have been raised that we may not want to use `async Fn` syntax unless we would pursue more general trait modifiers.  Since there remain substantial open questions on those -- and we don't want to rush any design work there -- it makes sense to ship this needed feature using the `AsyncFn`-style bounds syntax.

Since we would, in no case, be shipping a generalized trait modifier system anytime soon, we'll be continuing to see `AsyncFoo` traits appear across the ecosystem regardless.  If we were to ever later ship some general mechanism, we could at that time manage the migration from `AsyncFn` to `async Fn`, just as we'd be enabling and managing the migration of many other traits.

Note that, as specified in RFC 3668, the details of the `AsyncFn*` traits are not exposed and they can only be named via the "parentheses sugar".  That is, we can write `T: AsyncFn() -> u8` but not `T: AsyncFn<Output = u8>`.

Unlike the `Fn` traits, we cannot project to the `Output` associated type of the `AsyncFn` traits.  That is, while we can write...

```rust
fn f<F: Fn() -> u8>(_: F::Output) {}
```

...we cannot write:

```rust
fn f<F: AsyncFn() -> u8>(_: F::Output) {}
//~^ ERROR
```

The choice of `AsyncFn{,Mut,Once}` bounds syntax obviates, for our purposes here, another question decided after that RFC, which was how to order bound modifiers such as `for<'a> async Fn()`.

Other than answering the open question in the RFC on syntax, nothing has changed about the design of this feature between RFC 3668 and this stabilization.

## What is stabilized

For those interested in the technical details, please see [the dev guide section](https://rustc-dev-guide.rust-lang.org/coroutine-closures.html) I authored.

#### Async closures

Other than in how they solve the problems described above, async closures act similarly to closures that return async blocks, and can have parts of their signatures specified:

```rust
// They can have arguments annotated with types:
let _ = async |_: u8| { todo!() };

// They can have their return types annotated:
let _ = async || -> u8 { todo!() };

// They can be higher-ranked:
let _ = async |_: &str| { todo!() };

// They can capture values by move:
let x = String::from("hello, world");
let _ = async move || do_something(&x).await };
```

When called, they return an anonymous future type corresponding to the (not-yet-executed) body of the closure. These can be awaited like any other future.

What distinguishes async closures is that, unlike closures that return async blocks, the futures returned from the async closure can capture state from the async closure. For example:

```rust
let vec: Vec<String> = vec![];

let closure = async || {
    vec.push(ready(String::from("")).await);
};
```

The async closure captures `vec` with some `&'closure mut Vec<String>` which lives until the closure is dropped. Every call to `closure()` returns a future which reborrows that mutable reference `&'call mut Vec<String>` which lives until the future is dropped (e.g. it is `await`ed).

As another example:

```rust
let string: String = "Hello, world".into();

let closure = async move || {
    ready(&string).await;
};
```

The closure is marked with `move`, which means it takes ownership of the string by *value*. The future that is returned by calling `closure()` returns a future which borrows a reference `&'call String` which lives until the future is dropped (e.g. it is `await`ed).

#### Async fn trait family

To support the lending capability of async closures, and to provide a first-class way to express higher-ranked async closures, we introduce the `AsyncFn*` family of traits. See the [corresponding section](https://rust-lang.github.io/rfcs/3668-async-closures.html#asyncfn) of the RFC.

We stabilize naming `AsyncFn*` via the "parenthesized sugar" syntax that normal `Fn*` traits can be named. The `AsyncFn*` trait can be used anywhere a `Fn*` trait bound is allowed, such as:

```rust
/// In return-position impl trait:
fn closure() -> impl AsyncFn() { async || {} }

/// In trait bounds:
trait Foo<F>: Sized
where
    F: AsyncFn()
{
    fn new(f: F) -> Self;
}

/// in GATs:
trait Gat {
    type AsyncHasher<T>: AsyncFn(T) -> i32;
}
```

Other than using them in trait bounds, the definitions of these traits are not directly observable, but certain aspects of their behavior can be indirectly observed such as the fact that:

* `AsyncFn::async_call` and `AsyncFnMut::async_call_mut` return a future which is *lending*, and therefore borrows the `&self` lifetime of the callee.

```rust
fn by_ref_call(c: impl AsyncFn()) {
    let fut = c();
    drop(c);
    //   ^ Cannot drop `c` since it is borrowed by `fut`.
}
```

* `AsyncFnOnce::async_call_once` returns a future that takes ownership of the callee.

```rust
fn by_ref_call(c: impl AsyncFnOnce()) {
    let fut = c();
    let _ = c();
    //      ^ Cannot call `c` since calling it takes ownership the callee.
}
```

* All currently-stable callable types (i.e., closures, function items, function pointers, and `dyn Fn*` trait objects) automatically implement `AsyncFn*() -> T` if they implement `Fn*() -> Fut` for some output type `Fut`, and `Fut` implements `Future<Output = T>`.
    * This is to make sure that `AsyncFn*()` trait bounds have maximum compatibility with existing callable types which return futures, such as async function items and closures which return boxed futures.
    * For now, this only works currently for *concrete* callable types -- for example, a argument-position impl trait like `impl Fn() -> impl Future<Output = ()>` does not implement `AsyncFn()`, due to the fact that a `AsyncFn`-if-`Fn` blanket impl does not exist in reality. This may be relaxed in the future. Users can work around this by wrapping their type in an async closure and calling it. I expect this to not matter much in practice, as users are encouraged to write `AsyncFn` bounds directly.

```rust
fn is_async_fn(_: impl AsyncFn(&str)) {}

async fn async_fn_item(s: &str) { todo!() }
is_async_fn(s);
// ^^^ This works.

fn generic(f: impl Fn() -> impl Future<Output = ()>) {
    is_async_fn(f);
    // ^^^ This does not work (yet).
}
```

#### The by-move future

When async closures are called with `AsyncFn`/`AsyncFnMut`, they return a coroutine that borrows from the closure. However, when they are called via `AsyncFnOnce`, we consume that closure, and cannot return a coroutine that borrows from data that is now dropped.

To work around around this limitation, we synthesize a separate future type for calling the async closure via `AsyncFnOnce`.

This future executes identically to the by-ref future returned from calling the async closure, except for the fact that it has a different set of captures, since we must *move* the captures from the parent async into the child future.

#### Interactions between async closures and the `Fn*` family of traits

Async closures always implement `FnOnce`, since they always can be called once. They may also implement `Fn` or `FnMut` if their body is compatible with the calling mode (i.e. if they do not mutate their captures, or they do not capture their captures, respectively) and if the future returned by the async closure is not *lending*.

```rust
let id = String::new();

let mapped: Vec</* impl Future */> =
    [/* elements */]
    .into_iter()
    // `Iterator::map` takes an `impl FnMut`
    .map(async |element| {
        do_something(&id, element).await;
    })
    .collect();
```

See [the dev guide](https://rustc-dev-guide.rust-lang.org/coroutine-closures.html#follow-up-when-do-async-closures-implement-the-regular-fn-traits) for a detailed explanation for the situations where this may not be possible due to the lending nature of async closures.

#### Other notable features of async closures shared with synchronous closures

* Async closures are `Copy` and/or `Clone` if their captures are `Copy`/`Clone`.
* Async closures do closure signature inference: If an async closure is passed to a function with a `AsyncFn` or `Fn` trait bound, we can eagerly infer the argument types of the closure. More details are provided in [the dev guide](https://rustc-dev-guide.rust-lang.org/coroutine-closures.html#closure-signature-inference).

#### Lints

This PR also stabilizes the `CLOSURE_RETURNING_ASYNC_BLOCK` lint as an `allow` lint. This lints on "old-style" async closures:

```rust
#![warn(closure_returning_async_block)]
let c = |x: &str| async {};
```

We should encourage users to use `async || {}` where possible. This lint remains `allow` and may be refined in the future because it has a few false positives (namely, see: "Where do we expect rewriting `|| async {}` into `async || {}` to fail?")

An alternative that could be made at the time of stabilization is to put this lint behind another gate, so we can decide to stabilize it later.

## What isn't stabilized (aka, potential future work)

#### `async Fn*()` bound syntax

We decided to stabilize async closures without the `async Fn*()` bound modifier syntax. The general direction of this syntax and how it fits is still being considered by T-lang (e.g. in [RFC 3710](https://github.com/rust-lang/rfcs/pull/3710)).

#### Naming the futures returned by async closures

This stabilization PR does not provide a way of naming the futures returned by calling `AsyncFn*`.

Exposing a stable way to refer to these futures is important for building async-closure-aware combinators, and will be an important future step.

#### Return type notation-style bounds for async closures

The RFC described an RTN-like syntax for putting bounds on the future returned by an async closure:

```rust
async fn foo(x: F) -> Result<()>
where
    F: AsyncFn(&str) -> Result<()>,
    // The future from calling `F` is `Send` and `'static`.
    F(..): Send + 'static,
{}
```

This stabilization PR does not stabilize that syntax yet, which remains unimplemented (though will be soon).

#### `dyn AsyncFn*()`

`AsyncFn*` are not dyn-compatible yet. This will likely be implemented in the future along with the dyn-compatibility of async fn in trait, since the same issue (dealing with the future returned by a call) applies there.

## Tests

Tests exist for this feature in [`tests/ui/async-await/async-closures`](5b54286640/tests/ui/async-await/async-closures).

<details>
    <summary>A selected set of tests:</summary>

* Lending behavior of async closures
    * `tests/ui/async-await/async-closures/mutate.rs`
    * `tests/ui/async-await/async-closures/captures.rs`
    * `tests/ui/async-await/async-closures/precise-captures.rs`
    * `tests/ui/async-await/async-closures/no-borrow-from-env.rs`
* Async closures may be higher-ranked
    * `tests/ui/async-await/async-closures/higher-ranked.rs`
    * `tests/ui/async-await/async-closures/higher-ranked-return.rs`
* Async closures may implement `Fn*` traits
    * `tests/ui/async-await/async-closures/is-fn.rs`
    * `tests/ui/async-await/async-closures/implements-fnmut.rs`
* Async closures may be cloned
    * `tests/ui/async-await/async-closures/clone-closure.rs`
* Ownership of the upvars when `AsyncFnOnce` is called
    * `tests/ui/async-await/async-closures/drop.rs`
    * `tests/ui/async-await/async-closures/move-is-async-fn.rs`
    * `tests/ui/async-await/async-closures/force-move-due-to-inferred-kind.rs`
    * `tests/ui/async-await/async-closures/force-move-due-to-actually-fnonce.rs`
* Closure signature inference
    * `tests/ui/async-await/async-closures/signature-deduction.rs`
    * `tests/ui/async-await/async-closures/sig-from-bare-fn.rs`
    * `tests/ui/async-await/async-closures/signature-inference-from-two-part-bound.rs`

</details>

## Remaining bugs and open issues

* https://github.com/rust-lang/rust/issues/120694 tracks moving onto more general `LendingFn*` traits. No action needed, since it's not observable.
* https://github.com/rust-lang/rust/issues/124020 - Polymorphization ICE. Polymorphization needs to be heavily reworked. No action needed.
* https://github.com/rust-lang/rust/issues/127227 - Tracking reworking the way that rustdoc re-sugars bounds.
    * The part relevant to to `AsyncFn` is fixed by https://github.com/rust-lang/rust/pull/132697.

## Where do we expect rewriting `|| async {}` into `async || {}` to fail?

* Fn pointer coercions
    * Currently, it is not possible to coerce an async closure to an fn pointer like regular closures can be. This functionality may be implemented in the future.
```rust
let x: fn() -> _ = async || {};
```
* Argument capture
    * Like async functions, async closures always capture their input arguments. This is in contrast to something like `|t: T| async {}`, which doesn't capture `t` unless it is used in the async block. This may affect the `Send`-ness of the future or affect its outlives.
```rust
fn needs_send_future(_: impl Fn(NotSendArg) -> Fut)
where
    Fut: Future<Output = ()>,
{}

needs_send_future(async |_| {});
```

## History

#### Important feature history

- https://github.com/rust-lang/rust/pull/51580
- https://github.com/rust-lang/rust/pull/62292
- https://github.com/rust-lang/rust/pull/120361
- https://github.com/rust-lang/rust/pull/120712
- https://github.com/rust-lang/rust/pull/121857
- https://github.com/rust-lang/rust/pull/123660
- https://github.com/rust-lang/rust/pull/125259
- https://github.com/rust-lang/rust/pull/128506
- https://github.com/rust-lang/rust/pull/127482

## Acknowledgements

Thanks to `@oli-obk` for reviewing the bulk of the work for this feature. Thanks to `@nikomatsakis` for his design blog posts which generated interest for this feature, `@traviscross` for feedback and additions to this stabilization report. All errors are my own.

r? `@ghost`
2024-12-13 00:37:51 +00:00
..
auxiliary tidy check to find misc files in ui tests, and clean up the results 2023-05-09 20:35:39 -04:00
allow-features-empty.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
allow-features-empty.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
allow-features.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
allow-features.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
bench.rs use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
bench.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
doc-rust-logo.rs rustdoc: remove rust logo from non-Rust crates 2023-10-08 20:17:53 -07:00
doc-rust-logo.stderr Bless tests 2024-01-13 12:46:58 -05:00
duplicate-features.rs terminology: #[feature] *enables* a feature (instead of "declaring" or "activating" it) 2024-10-22 07:37:54 +01:00
duplicate-features.stderr terminology: #[feature] *enables* a feature (instead of "declaring" or "activating" it) 2024-10-22 07:37:54 +01:00
env-flag.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
env-flag.stderr Rename --env option flag to --env-set 2024-01-12 11:02:57 +01:00
feature-gate-abi-avr-interrupt.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-abi-avr-interrupt.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-abi-msp430-interrupt.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-abi-msp430-interrupt.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-abi-riscv-interrupt.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-abi-riscv-interrupt.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-abi-x86-interrupt.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-abi-x86-interrupt.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-abi.rs Don't even parse an intrinsic unless the feature gate is enabled 2024-04-07 13:30:12 -04:00
feature-gate-abi.stderr Don't even parse an intrinsic unless the feature gate is enabled 2024-04-07 13:30:12 -04:00
feature-gate-abi_ptx.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-abi_ptx.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-abi_unadjusted.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-abi_unadjusted.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-adt_const_params.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-adt_const_params.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
feature-gate-alloc-error-handler.rs use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-alloc-error-handler.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-allocator_internals.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-allocator_internals.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-allow-internal-unsafe-nested-macro.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-allow-internal-unsafe-nested-macro.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-allow-internal-unstable-nested-macro.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-allow-internal-unstable-nested-macro.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-allow-internal-unstable-struct.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-allow-internal-unstable-struct.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-allow-internal-unstable.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-allow-internal-unstable.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-arbitrary-self-types-pointers.rs Arbitrary self types v2: pointers feature gate. 2024-08-27 17:32:35 +00:00
feature-gate-arbitrary-self-types-pointers.stderr Arbitrary self types v2: use Receiver trait 2024-12-11 11:59:12 +00:00
feature-gate-arbitrary-self-types.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-arbitrary-self-types.stderr Arbitrary self types v2: use Receiver trait 2024-12-11 11:59:12 +00:00
feature-gate-arbitrary_self_types-raw-pointer.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-arbitrary_self_types-raw-pointer.stderr Arbitrary self types v2: use Receiver trait 2024-12-11 11:59:12 +00:00
feature-gate-asm_experimental_arch.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-asm_experimental_arch.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-asm_experimental_reg.rs Make s390x non-clobber-only vector register support unstable 2024-11-24 21:42:22 +09:00
feature-gate-asm_experimental_reg.stderr Make s390x non-clobber-only vector register support unstable 2024-11-24 21:42:22 +09:00
feature-gate-asm_goto.rs Add tests for asm goto 2024-02-24 19:49:16 +00:00
feature-gate-asm_goto.stderr Add tests for asm goto 2024-02-24 19:49:16 +00:00
feature-gate-asm_goto_with_outputs.rs Make asm_goto_with_outputs a separate feature gate 2024-11-24 15:24:01 +00:00
feature-gate-asm_goto_with_outputs.stderr Make asm_goto_with_outputs a separate feature gate 2024-11-24 15:24:01 +00:00
feature-gate-asm_unwind.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-asm_unwind.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-assoc-type-defaults.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-assoc-type-defaults.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-associated_const_equality.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-associated_const_equality.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-async-fn-in-dyn-trait.rs Add feature gate, not working yet 2024-12-10 16:52:20 +00:00
feature-gate-async-fn-in-dyn-trait.stderr Add feature gate, not working yet 2024-12-10 16:52:20 +00:00
feature-gate-async-trait-bounds.rs Stabilize async closures 2024-12-13 00:04:56 +00:00
feature-gate-async-trait-bounds.stderr Stabilize async closures 2024-12-13 00:04:56 +00:00
feature-gate-auto-traits.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-auto-traits.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-autodiff-use.has_support.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-autodiff-use.no_support.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-autodiff-use.rs use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-autodiff.has_support.stderr Add pretty, ui, and feature-gate tests for the enzyme/autodiff frontend 2024-10-11 20:38:43 +02:00
feature-gate-autodiff.no_support.stderr Add pretty, ui, and feature-gate tests for the enzyme/autodiff frontend 2024-10-11 20:38:43 +02:00
feature-gate-autodiff.rs Add pretty, ui, and feature-gate tests for the enzyme/autodiff frontend 2024-10-11 20:38:43 +02:00
feature-gate-box_patterns.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-box_patterns.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-builtin_syntax.rs Add feature gate 2023-05-05 21:44:48 +02:00
feature-gate-builtin_syntax.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-c_variadic.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-c_variadic.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-cfg-boolean-literals.rs Feature gate boolean lit support in cfg predicates 2024-10-04 09:09:20 +02:00
feature-gate-cfg-boolean-literals.stderr Feature gate boolean lit support in cfg predicates 2024-10-04 09:09:20 +02:00
feature-gate-cfg-relocation-model.rs Add the relocation_model to the cfg 2023-08-18 19:57:28 +02:00
feature-gate-cfg-relocation-model.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-cfg-sanitizer_cfi.rs Add missing CFI sanitizer cfgs feature gate 2023-12-23 00:52:42 +01:00
feature-gate-cfg-sanitizer_cfi.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-cfg-target-compact.rs tests/ui: prepare some tests for --check-cfg by default 2024-05-04 11:30:38 +02:00
feature-gate-cfg-target-compact.stderr tests/ui: prepare some tests for --check-cfg by default 2024-05-04 11:30:38 +02:00
feature-gate-cfg-target-has-atomic-equal-alignment.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-cfg-target-has-atomic-equal-alignment.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-cfg-target-has-atomic.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-cfg-target-has-atomic.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-cfg-target-thread-local.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-cfg-target-thread-local.stderr Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
feature-gate-cfg-version.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-cfg-version.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-cfg_overflow_checks.rs Add support for cfg(overflow_checks) 2023-05-11 18:06:31 +04:00
feature-gate-cfg_overflow_checks.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-cfg_sanitize.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-cfg_sanitize.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-cfg_ub_checks.rs Put checks that detect UB under their own flag below debug_assertions 2024-04-06 11:21:47 -04:00
feature-gate-cfg_ub_checks.stderr Put checks that detect UB under their own flag below debug_assertions 2024-04-06 11:21:47 -04:00
feature-gate-cfi_encoding.rs Add cross-language LLVM CFI support to the Rust compiler 2023-05-03 22:41:29 +00:00
feature-gate-cfi_encoding.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-closure_lifetime_binder.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-closure_lifetime_binder.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-closure_track_caller.rs Error on using yield without also using #[coroutine] on the closure 2024-04-24 08:05:29 +00:00
feature-gate-closure_track_caller.stderr Error on using yield without also using #[coroutine] on the closure 2024-04-24 08:05:29 +00:00
feature-gate-compiler-builtins.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-compiler-builtins.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-concat_bytes.rs use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-concat_bytes.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-concat_idents.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-concat_idents.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-concat_idents2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-concat_idents2.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-concat_idents3.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-concat_idents3.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-const-indexing.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-coroutines.e2024.stderr Feature gate yield expressions not in 2024 2024-11-11 06:17:11 -08:00
feature-gate-coroutines.none.stderr rustc_ast_lowering: make "yield syntax is experimental" translatable 2024-08-10 14:32:55 +03:00
feature-gate-coroutines.rs Stabilize the 2024 edition 2024-11-22 11:12:15 -08:00
feature-gate-coverage-attribute.rs Rename the feature, but not the attribute, to coverage_attribute 2023-09-08 12:46:09 +01:00
feature-gate-coverage-attribute.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-custom_attribute.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-custom_attribute.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-custom_attribute2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-custom_attribute2.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-custom_mir.rs Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
feature-gate-custom_mir.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-custom_test_frameworks.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-custom_test_frameworks.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-decl_macro.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-decl_macro.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-default-field-values.rs review comments: rewordings 2024-12-09 21:55:13 +00:00
feature-gate-default-field-values.stderr review comments: rewordings 2024-12-09 21:55:13 +00:00
feature-gate-deprecated_safe.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-deprecated_safe.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-deref_patterns.rs Add barest-bones deref patterns 2024-03-20 22:30:27 +01:00
feature-gate-deref_patterns.stderr Add barest-bones deref patterns 2024-03-20 22:30:27 +01:00
feature-gate-derive-coerce-pointee.rs use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-derive-coerce-pointee.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-dispatch-from-dyn-cell.rs Replace item names containing an error code with something more meaningful 2024-04-30 22:27:19 +02:00
feature-gate-dispatch-from-dyn-cell.stderr Arbitrary self types v2: use Receiver trait 2024-12-11 11:59:12 +00:00
feature-gate-dispatch-from-dyn-missing-impl.rs UI tests: Rename "object safe" to "dyn compatible" 2024-10-10 01:13:29 +02:00
feature-gate-dispatch-from-dyn-missing-impl.stderr Compiler: Rename "object safe" to "dyn compatible" 2024-09-25 13:26:48 +02:00
feature-gate-doc_cfg.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-doc_cfg.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-doc_masked.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-doc_masked.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-doc_notable_trait.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-doc_notable_trait.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-dyn_compatible_for_dispatch.rs UI tests: Rename "object safe" to "dyn compatible" 2024-10-10 01:13:29 +02:00
feature-gate-dyn_compatible_for_dispatch.stderr UI tests: Rename "object safe" to "dyn compatible" 2024-10-10 01:13:29 +02:00
feature-gate-exhaustive-patterns.rs Update tests 2024-08-10 12:07:17 +02:00
feature-gate-exhaustive-patterns.stderr Update tests for new TRPL chapter order 2024-11-23 08:57:25 -07:00
feature-gate-explicit_tail_calls.rs Syntatically accept become expressions 2023-06-19 12:54:34 +00:00
feature-gate-explicit_tail_calls.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-extern_absolute_paths.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-extern_absolute_paths.stderr Do not use question as label 2024-07-24 21:03:27 +00:00
feature-gate-extern_types.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-extern_types.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-f16.e2015.stderr Fix f16 and f128 feature gates in editions other than 2015 2024-04-03 16:03:22 -04:00
feature-gate-f16.e2018.stderr Fix f16 and f128 feature gates in editions other than 2015 2024-04-03 16:03:22 -04:00
feature-gate-f16.rs Update f16 and f128 tests to run on both 2015 and 2018 editions 2024-04-03 16:03:22 -04:00
feature-gate-f128.e2015.stderr Fix f16 and f128 feature gates in editions other than 2015 2024-04-03 16:03:22 -04:00
feature-gate-f128.e2018.stderr Fix f16 and f128 feature gates in editions other than 2015 2024-04-03 16:03:22 -04:00
feature-gate-f128.rs Update f16 and f128 tests to run on both 2015 and 2018 editions 2024-04-03 16:03:22 -04:00
feature-gate-feature-gate.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-feature-gate.stderr Undeprecate and use lint unstable_features 2023-12-20 18:16:28 +01:00
feature-gate-ffi_const.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-ffi_const.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-ffi_pure.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-ffi_pure.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-fmt-debug.rs fmt-debug option 2024-08-28 23:32:40 +01:00
feature-gate-fmt-debug.stderr fmt-debug option 2024-08-28 23:32:40 +01:00
feature-gate-fn_align.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-fn_align.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-fn_delegation.rs Delegation implementation: step 1 2024-01-12 14:11:16 +03:00
feature-gate-fn_delegation.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-format_args_nl.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-format_args_nl.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-freeze-impls.rs Forbid implementing Freeze even if the trait is stabilized 2024-02-29 14:10:29 +00:00
feature-gate-freeze-impls.stderr Forbid implementing Freeze even if the trait is stabilized 2024-02-29 14:10:29 +00:00
feature-gate-fundamental.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-fundamental.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-gen_blocks.e2024.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-gen_blocks.none.stderr Actually parse async gen blocks correctly 2023-12-12 20:13:37 +00:00
feature-gate-gen_blocks.rs Stabilize the 2024 edition 2024-11-22 11:12:15 -08:00
feature-gate-generic_arg_infer.normal.stderr Provide structured suggestion for #![feature(foo)] 2024-03-18 16:08:58 +00:00
feature-gate-generic_arg_infer.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-global-registration.rs add todo test for feature gate 2024-05-20 09:18:49 +02:00
feature-gate-global-registration.stderr add todo test for feature gate 2024-05-20 09:18:49 +02:00
feature-gate-guard-patterns.rs parse guard patterns 2024-11-24 19:42:33 +01:00
feature-gate-guard-patterns.stderr parse guard patterns 2024-11-24 19:42:33 +01:00
feature-gate-impl_trait_in_assoc_type.rs Avoid silencing relevant follow-up errors 2024-01-09 21:08:16 +00:00
feature-gate-impl_trait_in_assoc_type.stderr Bless ui tests. 2024-10-04 23:38:41 +00:00
feature-gate-impl_trait_in_fn_trait_return.rs Split note, fix const/static impl trait error 2024-01-07 18:00:03 +00:00
feature-gate-impl_trait_in_fn_trait_return.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-inherent_associated_types.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-inherent_associated_types.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-inline_const_pat.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-inline_const_pat.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-intrinsics.rs Don't even parse an intrinsic unless the feature gate is enabled 2024-04-07 13:30:12 -04:00
feature-gate-intrinsics.stderr Don't even parse an intrinsic unless the feature gate is enabled 2024-04-07 13:30:12 -04:00
feature-gate-lang-items.rs consistency rename: language item -> lang item 2024-04-17 13:00:43 +02:00
feature-gate-lang-items.stderr consistency rename: language item -> lang item 2024-04-17 13:00:43 +02:00
feature-gate-large-assignments.rs Add the missing quotation mark in comment 2024-11-18 20:18:22 +08:00
feature-gate-large-assignments.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-lifetime-capture-rules-2024.rs Add lifetime_capture_rules_2024 2023-12-05 19:53:59 +00:00
feature-gate-lifetime-capture-rules-2024.stderr Bless test fallout 2024-08-17 12:43:25 -04:00
feature-gate-link-arg-attribute.in_attr.stderr Modify some feature-gate tests to also check command-line handling 2024-11-18 14:13:10 +11:00
feature-gate-link-arg-attribute.in_flag.stderr Modify some feature-gate tests to also check command-line handling 2024-11-18 14:13:10 +11:00
feature-gate-link-arg-attribute.rs Modify some feature-gate tests to also check command-line handling 2024-11-18 14:13:10 +11:00
feature-gate-link_cfg.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-link_cfg.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-link_llvm_intrinsics.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-link_llvm_intrinsics.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-linkage.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-linkage.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-log_syntax.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-log_syntax.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-log_syntax.stdout Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-log_syntax2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-log_syntax2.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-log_syntax2.stdout Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-macro-metavar-expr-concat.rs Add a new concat metavar expr 2024-06-13 22:12:26 -03:00
feature-gate-macro-metavar-expr-concat.stderr Add a new concat metavar expr 2024-06-13 22:12:26 -03:00
feature-gate-marker_trait_attr.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-marker_trait_attr.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-may-dangle.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-may-dangle.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-min-generic-const-args.rs Introduce min_generic_const_args and directly represent paths 2024-11-19 05:07:43 +00:00
feature-gate-min-generic-const-args.stderr Introduce min_generic_const_args and directly represent paths 2024-11-19 05:07:43 +00:00
feature-gate-min_const_fn.rs E0379: Make diagnostic more precise 2024-01-02 13:49:47 +01:00
feature-gate-min_const_fn.stderr E0379: Provide suggestions 2024-01-02 13:49:48 +01:00
feature-gate-more-maybe-bounds.rs Forbid ?Trait bounds repetitions 2024-07-26 16:35:05 +03:00
feature-gate-more-maybe-bounds.stderr Forbid ?Trait bounds repetitions 2024-07-26 16:35:05 +03:00
feature-gate-more-qualified-paths.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-more-qualified-paths.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-multiple_supertrait_upcastable.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-multiple_supertrait_upcastable.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-mut-ref.rs Feature gate 2024-03-27 11:20:28 -04:00
feature-gate-mut-ref.stderr Feature gate 2024-03-27 11:20:28 -04:00
feature-gate-naked_functions.rs use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-naked_functions.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-native_link_modifiers_as_needed.in_attr.stderr Modify some feature-gate tests to also check command-line handling 2024-11-18 14:13:10 +11:00
feature-gate-native_link_modifiers_as_needed.in_flag.stderr Overhaul the -l option parser (for linking to native libs) 2024-11-18 15:55:12 +11:00
feature-gate-native_link_modifiers_as_needed.rs Modify some feature-gate tests to also check command-line handling 2024-11-18 14:13:10 +11:00
feature-gate-needs-allocator.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-needs-allocator.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-negate-unsigned.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-negate-unsigned.stderr Tweak -1 as usize suggestion 2024-07-05 00:52:01 +00:00
feature-gate-negative_bounds.rs Implement negative bounds 2023-05-02 22:36:24 +00:00
feature-gate-negative_bounds.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
feature-gate-never_patterns.rs Check bindings around never patterns 2024-01-09 17:00:24 +01:00
feature-gate-never_patterns.stderr Auto merge of #119610 - Nadrieril:never_pattern_bindings, r=compiler-errors 2024-01-15 21:24:13 +00:00
feature-gate-never_type.rs Update never_type feature gate ui test 2024-02-01 20:01:05 +01:00
feature-gate-never_type.stderr Update never_type feature gate ui test 2024-02-01 20:01:05 +01:00
feature-gate-no_core.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-no_core.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-no_sanitize.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-no_sanitize.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-non_exhaustive_omitted_patterns_lint.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-non_exhaustive_omitted_patterns_lint.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-non_lifetime_binders.rs Add feature gate for non_lifetime_binders 2023-02-16 03:39:58 +00:00
feature-gate-non_lifetime_binders.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-offset-of-enum.rs Stabilize offset_of_nested 2024-07-29 17:50:12 +01:00
feature-gate-offset-of-enum.stderr Stabilize offset_of_nested 2024-07-29 17:50:12 +01:00
feature-gate-offset-of-slice.rs offset_of: allow (unstably) taking the offset of slice tail fields 2024-06-08 18:17:55 +02:00
feature-gate-offset-of-slice.stderr Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
feature-gate-omit-gdb-pretty-printer-section.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-omit-gdb-pretty-printer-section.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-optimize_attribute.rs misapplied optimize attribute throws a compilation error (#128488) 2024-10-20 08:34:15 -06:00
feature-gate-optimize_attribute.stderr misapplied optimize attribute throws a compilation error (#128488) 2024-10-20 08:34:15 -06:00
feature-gate-overlapping_marker_traits.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-overlapping_marker_traits.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
feature-gate-patchable-function-entry.rs Updated code for changes to RFC, added additional error handling, added 2024-06-25 19:00:02 +02:00
feature-gate-patchable-function-entry.stderr Updated code for changes to RFC, added additional error handling, added 2024-06-25 19:00:02 +02:00
feature-gate-pattern-complexity.rs Add feature gate test for pattern_complexity attribute 2024-03-03 13:10:15 +01:00
feature-gate-pattern-complexity.stderr Add feature gate test for pattern_complexity attribute 2024-03-03 13:10:15 +01:00
feature-gate-pin_ergonomics.rs Add sugar for &pin (const|mut) types 2024-10-07 11:15:04 -07:00
feature-gate-pin_ergonomics.stderr Add sugar for &pin (const|mut) types 2024-10-07 11:15:04 -07:00
feature-gate-postfix_match.rs Add postfix-match experimental feature 2024-03-05 23:34:45 -05:00
feature-gate-postfix_match.stderr Add postfix-match experimental feature 2024-03-05 23:34:45 -05:00
feature-gate-precise_capturing_in_traits.rs Add gate for precise capturing in traits 2024-10-10 11:44:11 -07:00
feature-gate-precise_capturing_in_traits.stderr Add gate for precise capturing in traits 2024-10-10 11:44:11 -07:00
feature-gate-precise_pointer_size_matching.rs Match usize/isize exhaustively 2023-10-27 19:56:12 +02:00
feature-gate-precise_pointer_size_matching.stderr Remove the precise_pointer_size_matching feature gate 2023-12-04 11:56:21 +01:00
feature-gate-prelude_import.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-prelude_import.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-print-check-cfg.rs Add --print=check-cfg to get the expected configs 2024-04-25 07:58:31 +02:00
feature-gate-print-check-cfg.stderr Add --print=check-cfg to get the expected configs 2024-04-25 07:58:31 +02:00
feature-gate-profiler-runtime.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-profiler-runtime.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-public_private_dependencies.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-register_tool.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-register_tool.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-repr-simd.rs Ban non-array SIMD 2024-09-09 19:39:43 -07:00
feature-gate-repr-simd.stderr bump conflicting_repr_hints lint to be shown in dependencies 2024-08-06 11:17:26 +02:00
feature-gate-repr128.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-repr128.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-return_type_notation.cfg.stderr Change RTN to use .. again 2024-06-28 14:20:43 -04:00
feature-gate-return_type_notation.no.stderr Change RTN to use .. again 2024-06-28 14:20:43 -04:00
feature-gate-return_type_notation.rs Change RTN to use .. again 2024-06-28 14:20:43 -04:00
feature-gate-rust_cold_cc.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-rust_cold_cc.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-rustc-allow-const-fn-unstable.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-rustc-allow-const-fn-unstable.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-rustc-attrs-1.rs fix rustc_nonnull_optimization_guaranteed docs 2024-09-22 10:00:24 +02:00
feature-gate-rustc-attrs-1.stderr fix rustc_nonnull_optimization_guaranteed docs 2024-09-22 10:00:24 +02:00
feature-gate-rustc-attrs.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-rustc-attrs.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-rustc_const_unstable.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-rustc_const_unstable.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
feature-gate-rustc_encodable_decodable.rs use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-rustc_encodable_decodable.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-rustdoc_internals.rs rustdoc-search: simplify rules for generics and type params 2024-10-30 12:27:48 -07:00
feature-gate-rustdoc_internals.stderr rustdoc-search: simplify rules for generics and type params 2024-10-30 12:27:48 -07:00
feature-gate-sha512_sm_x86.rs Add the sha512, sm3 and sm4 target features 2024-08-02 02:29:15 +05:30
feature-gate-sha512_sm_x86.stderr Add the sha512, sm3 and sm4 target features 2024-08-02 02:29:15 +05:30
feature-gate-shorter_tail_lifetimes.rs tail expression behind terminating scope 2024-06-18 04:14:43 +08:00
feature-gate-shorter_tail_lifetimes.stderr tail expression behind terminating scope 2024-06-18 04:14:43 +08:00
feature-gate-simd-ffi.rs Ban non-array SIMD 2024-09-09 19:39:43 -07:00
feature-gate-simd-ffi.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-simd.rs tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
feature-gate-simd.stderr tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
feature-gate-staged_api.rs Update since stability attributes in tests 2023-10-23 13:04:47 -07:00
feature-gate-staged_api.stderr ast: Standardize visiting order for attributes and node IDs 2024-06-24 16:08:51 +03:00
feature-gate-start.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-start.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-stmt_expr_attributes.rs tests: add tests for doc comments on expressions 2024-04-11 16:39:06 +00:00
feature-gate-stmt_expr_attributes.stderr expand: fix minor diagnostics bug 2024-04-22 16:28:20 +00:00
feature-gate-strict_provenance_lints.rs move strict provenance lints to new feature gate, remove old feature gates 2024-10-21 15:22:17 +01:00
feature-gate-strict_provenance_lints.stderr move strict provenance lints to new feature gate, remove old feature gates 2024-10-21 15:22:17 +01:00
feature-gate-test_unstable_lint.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-test_unstable_lint.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-thread_local.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-thread_local.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-trace_macros.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-trace_macros.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-trait-alias.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-trait-alias.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-trait_upcasting.rs Revert "Auto merge of #118133 - Urgau:stabilize_trait_upcasting, r=WaffleLapkin" 2024-01-22 14:24:31 +00:00
feature-gate-trait_upcasting.stderr Revert "Auto merge of #118133 - Urgau:stabilize_trait_upcasting, r=WaffleLapkin" 2024-01-22 14:24:31 +00:00
feature-gate-transparent_unions.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-transparent_unions.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-trivial_bounds-lint.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-trivial_bounds.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-trivial_bounds.stderr Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
feature-gate-try_blocks.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-try_blocks.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-type_alias_impl_trait.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-type_ascription.rs use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-type_ascription.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-unboxed-closures-manual-impls.rs Rename HIR TypeBinding to AssocItemConstraint and related cleanup 2024-05-30 22:52:33 +02:00
feature-gate-unboxed-closures-manual-impls.stderr show fnsig's output when there is difference 2024-07-06 23:29:58 +08:00
feature-gate-unboxed-closures-method-calls.rs use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-unboxed-closures-method-calls.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-unboxed-closures-ufcs-calls.rs use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-unboxed-closures-ufcs-calls.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
feature-gate-unboxed-closures.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-unboxed-closures.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-unqualified-local-imports.rs add unqualified_local_imports lint 2024-09-23 11:57:28 +02:00
feature-gate-unqualified-local-imports.stderr add unqualified_local_imports lint 2024-09-23 11:57:28 +02:00
feature-gate-unsafe_fields.rs Implement the unsafe-fields RFC. 2024-11-21 19:32:07 +01:00
feature-gate-unsafe_fields.with_gate.stderr Implement the unsafe-fields RFC. 2024-11-21 19:32:07 +01:00
feature-gate-unsafe_fields.without_gate.stderr Implement the unsafe-fields RFC. 2024-11-21 19:32:07 +01:00
feature-gate-unsafe_pin_internals.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-unsafe_pin_internals.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
feature-gate-unsized-const-params.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
feature-gate-unsized-const-params.stderr fix(hir_analysis/wfcheck): don't leak {type error} 2024-09-29 23:40:43 -05:00
feature-gate-unsized_fn_params.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-unsized_fn_params.stderr On implicit Sized bound on fn argument, point at type instead of pattern 2024-09-27 00:45:02 +00:00
feature-gate-unsized_locals.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-unsized_locals.stderr On implicit Sized bound on fn argument, point at type instead of pattern 2024-09-27 00:45:02 +00:00
feature-gate-unsized_tuple_coercion.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-unsized_tuple_coercion.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-used_with_arg.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-used_with_arg.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-vectorcall.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-vectorcall.stderr Add tracking issue and unstable book page for "vectorcall" ABI 2024-04-28 19:27:05 +01:00
feature-gate-with_negative_coherence.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
feature-gate-with_negative_coherence.stderr stabilize -Znext-solver=coherence 2024-10-15 13:11:00 +02:00
feature-gate-x86_amx_intrinsics.rs Add the feature gate and target-features 2024-07-11 19:00:49 -07:00
feature-gate-x86_amx_intrinsics.stderr Add the feature gate and target-features 2024-07-11 19:00:49 -07:00
feature-gate-xop_target_feature.rs Added the xop target feature and xop_target_feature gate 2024-07-12 23:30:22 +05:30
feature-gate-xop_target_feature.stderr Added the xop target feature and xop_target_feature gate 2024-07-12 23:30:22 +05:30
feature-gate-yeet_expr-in-cfg.rs Further cleanup cfgs in the UI test suite 2024-04-09 23:58:18 +02:00
feature-gate-yeet_expr-in-cfg.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gate-yeet_expr.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-gate-yeet_expr.stderr Bless tests 2024-01-13 12:46:58 -05:00
feature-gated-feature-in-macro-arg.rs Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
feature-gated-feature-in-macro-arg.stderr Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
gated-bad-feature.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
gated-bad-feature.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-43106-gating-of-bench.rs Supress unhelpful diagnostics for unresolved top level attributes 2024-01-29 17:43:07 +08:00
issue-43106-gating-of-bench.stderr Supress unhelpful diagnostics for unresolved top level attributes 2024-01-29 17:43:07 +08:00
issue-43106-gating-of-builtin-attrs-error.rs Gate repr(Rust) correctly on non-ADT items 2024-08-22 14:22:23 -04:00
issue-43106-gating-of-builtin-attrs-error.stderr Gate repr(Rust) correctly on non-ADT items 2024-08-22 14:22:23 -04:00
issue-43106-gating-of-builtin-attrs.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-43106-gating-of-builtin-attrs.stderr resolve: Implement a lint for out-of-scope use of macro_rules 2024-06-24 17:12:08 +03:00
issue-43106-gating-of-deprecated.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-43106-gating-of-derive-2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-43106-gating-of-derive-2.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
issue-43106-gating-of-derive.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-43106-gating-of-derive.stderr Bless tests 2024-01-13 12:46:58 -05:00
issue-43106-gating-of-macro_escape.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-43106-gating-of-macro_escape.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-43106-gating-of-macro_use.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-43106-gating-of-macro_use.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-43106-gating-of-proc_macro_derive.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-43106-gating-of-proc_macro_derive.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-43106-gating-of-stable.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-43106-gating-of-stable.stderr ast: Standardize visiting order for attributes and node IDs 2024-06-24 16:08:51 +03:00
issue-43106-gating-of-test.rs Supress unhelpful diagnostics for unresolved top level attributes 2024-01-29 17:43:07 +08:00
issue-43106-gating-of-test.stderr Supress unhelpful diagnostics for unresolved top level attributes 2024-01-29 17:43:07 +08:00
issue-43106-gating-of-unstable.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-43106-gating-of-unstable.stderr ast: Standardize visiting order for attributes and node IDs 2024-06-24 16:08:51 +03:00
issue-49983-see-issue-0.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-49983-see-issue-0.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
rustc-private.rs use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
rustc-private.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
soft-syntax-gates-with-errors.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
soft-syntax-gates-with-errors.stderr Bless tests 2024-01-13 12:46:58 -05:00
soft-syntax-gates-without-errors.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
soft-syntax-gates-without-errors.stderr Bless tests 2024-01-13 12:46:58 -05:00
stability-attribute-consistency.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
stability-attribute-consistency.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
stable-features.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
stable-features.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
stmt_expr_attrs_no_feature.rs Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
stmt_expr_attrs_no_feature.stderr Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
test-listing-format-json.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
test-listing-format-json.run.stderr update tests for the test harness's json formatting 2023-04-21 15:34:38 +02:00
trace_macros-gate.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
trace_macros-gate.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
unknown-feature.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unknown-feature.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
unstable-attribute-allow-issue-0.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unstable-attribute-allow-issue-0.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unstable-attribute-rejects-already-stable-features.rs Emit an error for unstable attributes that reference already stable features 2024-10-12 10:19:24 +02:00
unstable-attribute-rejects-already-stable-features.stderr ensure that all publicly reachable const fn have const stability info 2024-11-10 10:16:26 +01:00
version_check.rs Make RUSTC_OVERRIDE_VERSION_STRING overwrite the rendered version output, too 2024-07-30 14:08:02 +00:00