Files
rust/tests/ui
Matthias Krüger db77788dc5 Rollup merge of #132939 - uellenberg:suggest-deref, r=oli-obk
Suggest using deref in patterns

Fixes #132784

This changes the following code:
```rs
use std::sync::Arc;
fn main() {
    let mut x = Arc::new(Some(1));
    match x {
        Some(_) => {}
        None => {}
    }
}
```

to output
```rs
error[E0308]: mismatched types
  --> src/main.rs:5:9
   |
LL |     match x {
   |           - this expression has type `Arc<Option<{integer}>>`
...
LL |         Some(_) => {}
   |         ^^^^^^^ expected `Arc<Option<{integer}>>`, found `Option<_>`
   |
   = note: expected struct `Arc<Option<{integer}>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL |     match *x {
   |           ~~
```

instead of
```rs
error[E0308]: mismatched types
 --> src/main.rs:5:9
  |
4 |     match x {
  |           - this expression has type `Arc<Option<{integer}>>`
5 |         Some(_) => {}
  |         ^^^^^^^ expected `Arc<Option<{integer}>>`, found `Option<_>`
  |
  = note: expected struct `Arc<Option<{integer}>>`
               found enum `Option<_>`
```

This makes it more obvious that a Deref is available, and gives a suggestion on how to use it in order to fix the issue at hand.
2024-12-14 23:56:28 +01:00
..
2024-12-12 23:36:27 +00:00
2024-07-18 00:00:04 +00:00
2024-12-10 11:20:19 +08:00
2024-12-12 23:36:27 +00:00
2024-12-12 23:36:27 +00:00
2024-12-05 14:14:17 -08:00
2024-12-13 00:04:56 +00:00
2024-12-12 23:36:27 +00:00
2024-12-12 23:36:27 +00:00
2024-12-12 23:36:27 +00:00
2024-12-12 23:36:27 +00:00
2024-11-03 18:59:31 +00:00
2024-09-05 06:37:38 -04:00
2024-10-30 16:47:47 -07:00
2024-12-13 00:04:56 +00:00
2024-12-13 14:18:41 -08:00
2024-10-30 16:47:47 -07:00
2024-12-12 23:36:27 +00:00
2024-12-12 23:36:27 +00:00
2024-12-13 00:04:56 +00:00
2024-11-16 20:03:31 +00:00
2024-12-12 23:36:27 +00:00
2024-08-18 19:46:53 +02:00
2024-08-03 07:57:31 -04:00
2024-12-10 11:34:13 +08:00
2024-12-08 20:21:46 +00:00
2024-12-13 00:04:56 +00:00
2024-12-13 00:04:56 +00:00
2024-12-12 23:36:27 +00:00
2024-12-12 23:36:27 +00:00
2024-11-07 18:18:34 -08:00
2024-11-02 03:08:04 +00:00
2024-12-07 22:18:51 +00:00
2024-12-13 00:04:56 +00:00
2024-12-12 16:29:40 +00:00
2024-12-06 16:42:09 -05:00
2024-12-12 23:36:27 +00:00
2024-10-28 14:20:28 +11:00
2024-10-28 14:20:28 +11:00
2024-12-02 03:43:50 -07:00
2024-06-25 18:06:22 +02:00
2024-10-30 16:47:47 -07: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 interpret a test.

As part of an ongoing 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 a legacy compiletest-style test header. To fix this, you should migrate to the ui_test-style header //@ <content>.