rust/tests/ui
bors 37d56daac6 Auto merge of #128771 - carbotaniuman:stabilize_unsafe_attr, r=nnethercote
Stabilize `unsafe_attributes`

# Stabilization report

## Summary

This is a tracking issue for the RFC 3325: unsafe attributes

We are stabilizing `#![feature(unsafe_attributes)]`,  which makes certain attributes considered 'unsafe', meaning that they must be surrounded by an `unsafe(...)`, as in `#[unsafe(no_mangle)]`.

RFC: rust-lang/rfcs#3325
Tracking issue: #123757

## What is stabilized

### Summary of stabilization

Certain attributes will now be designated as unsafe attributes, namely, `no_mangle`, `export_name`, and `link_section` (stable only), and these attributes will need to be called by surrounding them in `unsafe(...)` syntax. On editions prior to 2024, this is simply an edition lint, but it will become a hard error in 2024. This also works in `cfg_attr`, but `unsafe` is not allowed for any other attributes, including proc-macros ones.

```rust
#[unsafe(no_mangle)]
fn a() {}

#[cfg_attr(any(), unsafe(export_name = "c"))]
fn b() {}
```

For a table showing the attributes that were considered to be included in the list to require unsafe, and subsequent reasoning about why each such attribute was or was not included, see [this comment here](https://github.com/rust-lang/rust/pull/124214#issuecomment-2124753464)

## Tests

The relevant tests are in `tests/ui/rust-2024/unsafe-attributes` and `tests/ui/attributes/unsafe`.
2024-08-17 22:48:42 +00:00
..
abi unconditionally allow shadow call-stack for AArch64 whenever fixed-x18 is applied 2024-08-09 19:35:02 +08:00
alloc-error
allocator
annotate-snippet
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 stabilize `asm_const` 2024-08-13 23:18:31 +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 Improve the impl and diag output of lint type_alias_bounds 2024-07-23 01:48:03 +02:00
associated-item
associated-type-bounds Add Tests 2024-07-29 21:47:19 -04:00
associated-types Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
async-await Rollup merge of #129101 - compiler-errors:deref-on-parent-by-ref, r=lcnr 2024-08-15 19:32:37 +02:00
attributes Auto merge of #128771 - carbotaniuman:stabilize_unsafe_attr, r=nnethercote 2024-08-17 22:48:42 +00:00
auto-traits Don't ICE when auto trait has assoc ty in old solver 2024-07-24 17:19:44 -04:00
autoref-autoderef
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
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
borrowck Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04: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
c-variadic Use ordinal number in argument error 2024-07-14 13:50:09 +09:00
cast Rollup merge of #128759 - notriddle:notriddle/spec-to-string, r=workingjubilee,compiler-errors 2024-08-14 05:05:51 +02:00
cfg Disallow setting built-in cfgs via set the command-line 2024-08-07 14:08:34 +02:00
check-cfg Add the `sha512`, `sm3` and `sm4` target features 2024-08-02 02:29:15 +05:30
closure-expected-type
closure_context
closures Update tests 2024-08-10 12:07:17 +02: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 diagnostics: `Box<dyn Trait>` suggestion with multiple matching impl 2024-08-06 18:24:17 -07:00
coherence Revert "Rollup merge of #125572 - mu001999-contrib:dead/enhance, r=pnkfelix" 2024-08-03 07:57:31 -04:00
coinduction
command
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
const-generics Special-case alias ty in `try_from_lit` 2024-08-16 08:37:19 +08: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 more clear NAN names and fix broken_floats logic 2024-08-17 10:26:59 +02:00
coroutine Add must_use attribute to Coroutine trait 2024-08-12 19:27:57 -07:00
coverage-attr Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00:00
crate-loading
cross
cross-crate Closures are recursively reachable 2024-06-04 22:50:35 +02:00
custom_test_frameworks
cycle-trait
debuginfo Always use a colon in `//@ normalize-*:` headers 2024-07-11 12:23:44 +10:00
definition-reachable
delegation Rewrite `get_fn_id_for_return_block` 2024-08-16 20:53:13 +01:00
dep-graph
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
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): register helper attributes 2024-08-13 04:26:48 +08:00
dest-prop
destructuring-assignment
diagnostic-flags tests: remove few ignore-stage2 2024-04-25 10:48:11 +03:00
diagnostic-width
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
disallowed-deconstructing
dollar-crate
drop Use more accurate span for `addr_of!` suggestion 2024-07-18 18:39:20 +00:00
drop-bounds
dropck Rollup merge of #128438 - Bryanskiy:empty-array-dropck, r=lcnr 2024-07-31 23:20:12 +02:00
dst
duplicate Accurate `use` rename suggestion span 2024-07-18 00:00:04 +00:00
dyn-drop
dyn-keyword Deny gen keyword in edition_2024_compat lints 2024-04-22 11:51:50 -04:00
dyn-star Fix test problems discovered by the revision check 2024-05-09 14:47:09 +10:00
dynamically-sized-types
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
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
error-codes Differentiate between methods and associated functions 2024-08-10 00:54: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
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 Use FnSig instead of raw FnDecl for ForeignItemKind::Fn 2024-08-16 14:10:06 -04: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 #128771 - carbotaniuman:stabilize_unsafe_attr, r=nnethercote 2024-08-17 22:48:42 +00:00
ffi-attrs Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
fmt Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00: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
function-pointer
functional-struct-update review comments 2024-04-12 20:57:07 +00:00
functions-closures
generic-associated-types Rollup merge of #128910 - estebank:assoc-fn, r=compiler-errors 2024-08-10 16:23:55 +02:00
generic-const-items Split part of `adt_const_params` into `unsized_const_params` 2024-07-17 11:01:29 +01:00
generics Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
half-open-range-patterns Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00:00
hashmap
hello_world
higher-ranked Use the right type when coercing fn items to pointers 2024-08-13 16:23:20 -04:00
hygiene Bless tests 2024-08-02 11:34:54 +00:00
illegal-sized-bound
impl-header-lifetime-elision And more general error 2024-05-24 11:20:33 -04:00
impl-trait Use the right type when coercing fn items to pointers 2024-08-13 16:23:20 -04:00
implied-bounds Auto merge of #127435 - GrigorenkoPV:tests-for-112905, r=cjgillot 2024-07-13 13:12:52 +00:00
imports Do not underline suggestions for code that is already there 2024-08-01 18:53:42 +00: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 only accept adt type during infer source visitor 2024-07-29 22:29:34 +08:00
infinite Automatically taint InferCtxt when errors are emitted 2024-06-26 16:01:45 +00:00
inherent-impls-overlap-check
inline-const Add test 2024-08-08 00:41:39 +08:00
instrument-coverage Fix remaining cases 2024-06-21 19:00:18 -04:00
instrument-xray
interior-mutability
internal
internal-lints Use the rustc_private libc less in tests 2024-04-15 08:54:11 -04:00
intrinsics Use FnSig instead of raw FnDecl for ForeignItemKind::Fn 2024-08-16 14:10:06 -04:00
invalid
invalid-compile-flags Add `--print=check-cfg` to get the expected configs 2024-04-25 07:58:31 +02:00
invalid-module-declaration
invalid-self-argument
io-checks Always use a colon in `//@ normalize-*:` headers 2024-07-11 12:23:44 +10:00
issues Use FnSig instead of raw FnDecl for ForeignItemKind::Fn 2024-08-16 14:10:06 -04: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
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 Rollup merge of #127655 - RalfJung:invalid_type_param_default, r=compiler-errors 2024-08-05 05:40:19 +02: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 Use FnSig instead of raw FnDecl for ForeignItemKind::Fn 2024-08-16 14:10:06 -04: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
macro_backtrace
macros Fix wrong source location for some incorrect macro definitions 2024-08-16 21:27:06 +08: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 Rollup merge of #128239 - compiler-errors:error-on-object-cand-confirm, r=oli-obk 2024-07-29 17:46:43 +02:00
mir Add test 2024-07-21 21:42:10 +08: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
missing-trait-bounds Use fulfillment, not evaluate, during method probe 2024-04-21 20:10:12 -04:00
missing_non_modrs_mod
modules Move tests 2024-04-07 17:38:07 -03:00
modules_and_files_visibility
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 Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04:00
no_std
non_modrs_mods
non_modrs_mods_and_inline_mods
not-panic
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 make `type_flags(ReError) & HAS_ERROR` 2024-03-20 17:29:58 +00:00
object-safety Rollup merge of #126090 - compiler-errors:supertrait-assoc-ty-unsoundness, r=lcnr 2024-07-26 00:57:20 +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 Improve "covered_by_many" error 2024-07-24 08:46:52 +02:00
overloaded
packed Always use a colon in `//@ normalize-*:` headers 2024-07-11 12:23:44 +10: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
parser tests: add regression test for #128845 2024-08-09 05:52:53 +00:00
patchable-function-entry Updated diagnostic messages 2024-06-27 22:24:36 +02:00
pattern Remove a no-longer-true `assert` 2024-08-13 23:00:42 +02:00
pin-macro
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
ptr_ops
pub Bless test fallout 2024-08-03 07:57:31 -04:00
qualified
query-system
range Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00:00
raw-ref-op turn pointer_structural_match into a hard error 2024-05-03 15:56:59 +02:00
reachable Update tests 2024-08-10 12:07:17 +02:00
recursion Gate the type length limit check behind a nightly flag 2024-07-12 21:16:09 -04:00
recursion_limit
regions Revert "Rollup merge of #125572 - mu001999-contrib:dead/enhance, r=pnkfelix" 2024-08-03 07:57:31 -04:00
repeat-expr Account for `let foo = expr`; to suggest `const foo: Ty = expr;` 2024-07-11 20:39:24 +00:00
repr Always use a colon in `//@ normalize-*:` headers 2024-07-11 12:23:44 +10:00
reserved
resolve Structured suggestion for `extern crate foo` when `foo` isn't resolved in import 2024-07-29 23:49:51 +00:00
return Use full expr span for return suggestion on type error/ambiguity 2024-06-30 23:11:54 -04:00
rfcs Simplify cleaning foreign fns in rustdoc 2024-08-16 14:10:06 -04:00
rmeta
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 CFI: Move CFI ui tests to cfi directory 2024-08-12 14:59:50 -07:00
self Auto merge of #117967 - adetaylor:fix-lifetime-elision-bug, r=lcnr 2024-07-18 13:33:38 +00:00
sepcomp
shadowed
shell-argfiles compiletest: add enable-by-default check-cfg 2024-05-04 11:30:38 +02:00
simd Do not use question as label 2024-07-24 21:03:27 +00:00
single-use-lifetime
sized remove unnecessary ignore-endian-big from stack-overflow-trait-infer test 2024-07-02 16:31:40 +02:00
span Do not underline suggestions for code that is already there 2024-08-01 18:53:42 +00:00
specialization Differentiate between methods and associated functions 2024-08-10 00:54:16 +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
static Enforce supertrait outlives obligations hold when confirming impl 2024-08-05 09:55:14 -04:00
statics WF-check struct field types at construction site 2024-08-05 17:37:12 -07:00
stats Add `ConstArgKind::Path` and make `ConstArg` its own HIR node 2024-07-16 19:27:28 -07:00
std Move various stdlib tests to library/std/tests 2024-04-28 16:10:12 -04: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 Revert "Rollup merge of #125572 - mu001999-contrib:dead/enhance, r=pnkfelix" 2024-08-03 07:57:31 -04:00
suggestions Auto merge of #128714 - camelid:wf-struct-exprs, r=BoxyUwU 2024-08-10 05:27:17 +00:00
svh
symbol-mangling-version
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 Add test to ensure implied target features work with asm, and fix failing tests 2024-08-07 00:41:48 -04: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
threads-sendsync delete UI tests that only check internal implementation details of thread-locals 2024-05-23 13:44:56 +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 Use the right type when coercing fn items to pointers 2024-08-13 16:23:20 -04:00
transmutability Revert suggestion verbosity change 2024-07-22 22:51:53 +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 Explicitly specify type parameter on FromResidual impls in stdlib. 2024-08-12 12:54:18 -05: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 Do not assemble candidates for auto traits of opaque types in their defining scope 2024-07-24 16:00:48 +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 Rewrite `get_fn_id_for_return_block` 2024-08-16 20:53:13 +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
uninhabited Update tests 2024-08-10 12:07:17 +02:00
union Mention when type parameter could be `Clone` 2024-04-24 22:21:15 +00:00
unknown-unstable-lints
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 unsafe extern blocks (RFC 3484) 2024-07-23 00:29:39 -03:00
unresolved Structured suggestion for `extern crate foo` when `foo` isn't resolved in import 2024-07-29 23:49:51 +00:00
unsafe Tweak raw-pointer field access and array indexing suggestions 2024-07-04 06:06:33 +00:00
unsized Support ?Trait bounds in supertraits and dyn Trait under a feature gate 2024-07-25 20:53:33 +03: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 Peel off explicit (or implicit) deref before suggesting clone on move error in borrowck 2024-07-26 14:41:56 -04: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
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
windows-subsystem rewrite test-harness to rmake 2024-07-02 11:37:59 -04:00
zero-sized
.gitattributes
README.md
alias-uninit-value.rs
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
as-precedence.rs
assign-assign.rs
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
associated-path-shl.rs
associated-path-shl.stderr
atomic-from-mut-not-available.rs
atomic-from-mut-not-available.stderr
attempted-access-non-fatal.rs
attempted-access-non-fatal.stderr
attr-bad-crate-attr.rs
attr-bad-crate-attr.stderr
attr-shebang.rs
attr-start.rs
attr-usage-inline.rs
attr-usage-inline.stderr
attrs-resolution-errors.rs
attrs-resolution-errors.stderr
attrs-resolution.rs
augmented-assignments-feature-gate-cross.rs
augmented-assignments-rpass.rs
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-ref-slice-plus-ref.rs
auto-ref-slice-plus-ref.stderr
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
bare-static-string.rs
big-literals.rs
bind-by-move.rs
bitwise.rs
bogus-tag.rs
bogus-tag.stderr
borrow-by-val-method-receiver.rs
bounds-lifetime.rs
bounds-lifetime.stderr
break-diverging-value.rs
break-diverging-value.stderr
builtin-clone-unwind.rs
can-copy-pod.rs
cancel-clean-via-immediate-rvalue-ref.rs
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
capture1.stderr
catch-unwind-bang.rs
cenum_impl_drop_cast.rs
cenum_impl_drop_cast.stderr
cfguard-run.rs
char.rs
class-cast-to-trait.rs
class-cast-to-trait.stderr
class-method-missing.rs
class-method-missing.stderr
cleanup-rvalue-for-scope.rs
cleanup-rvalue-scopes-cf.rs
cleanup-rvalue-scopes-cf.stderr
cleanup-rvalue-scopes.rs
cleanup-rvalue-temp-during-incomplete-alloc.rs
cleanup-shortcircuit.rs
close-over-big-then-small-data.rs
command-line-diagnostics.rs
command-line-diagnostics.stderr Better span for "make binding mutable" suggestion 2024-07-04 02:02:21 +00:00
complex.rs
conservative_impl_trait.rs
conservative_impl_trait.stderr
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
crate-leading-sep.rs
crate-method-reexport-grrrrrrr.rs
crate-name-attr-used.rs
crate-name-mismatch.rs
crate-name-mismatch.stderr
custom-attribute-multisegment.rs
custom-attribute-multisegment.stderr
custom-test-frameworks-simple.rs
custom_attribute.rs
custom_attribute.stderr
deduplicate-diagnostics.deduplicate.stderr
deduplicate-diagnostics.duplicate.stderr
deduplicate-diagnostics.rs
deep.rs
default-method-parsing.rs
default-method-simple.rs
defaults-well-formedness.rs
deprecation-in-force-unstable.rs
deref-non-pointer.rs
deref-non-pointer.stderr
deref-rc.rs
deref.rs
derive-uninhabited-enum-38885.rs
derive-uninhabited-enum-38885.stderr
destructure-trait-ref.rs
destructure-trait-ref.stderr
diverging-fallback-method-chain.rs
diverging-fallback-option.rs
diverging-fn-tail-35849.rs
diverging-fn-tail-35849.stderr
double-ref.rs
double-type-import.rs
double-type-import.stderr
dupe-first-attr.rs
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
elide-errors-on-mismatched-tuple.rs
elide-errors-on-mismatched-tuple.stderr
elided-test.rs
elided-test.stderr
else-if.rs
empty-allocation-non-null.rs
empty-allocation-rvalue-non-null.rs
empty-type-parameter-list.rs
empty-type-parameter-list.stderr
error-festival.rs
error-festival.stderr
error-should-say-copy-not-pod.rs
error-should-say-copy-not-pod.stderr
exclusive-drop-and-copy.rs
exclusive-drop-and-copy.stderr
explain.rs
explain.stdout
explicit-i-suffix.rs
explore-issue-38412.rs
explore-issue-38412.stderr
ext-expand-inner-exprs.rs
ext-nonexistent.rs
ext-nonexistent.stderr
fact.rs
fail-simple.rs
fail-simple.stderr
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
fun-indirect-call.rs
future-incompatible-lint-group.rs
future-incompatible-lint-group.stderr
global-scope.rs
hello.rs
illegal-ufcs-drop.fixed
illegal-ufcs-drop.rs
illegal-ufcs-drop.stderr
impl-inherent-non-conflict.rs
impl-not-adjacent-to-type.rs
impl-privacy-xc-1.rs
impl-unused-rps-in-assoc-type.rs
impl-unused-rps-in-assoc-type.stderr
impl-unused-tps-inherent.rs
impl-unused-tps-inherent.stderr
impl-unused-tps.rs
impl-unused-tps.stderr
implicit-method-bind.rs
implicit-method-bind.stderr
inline-disallow-on-variant.rs
inline-disallow-on-variant.stderr
inlined-main.rs
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
inner-static-type-parameter.rs
inner-static-type-parameter.stderr
inner-static.rs
integral-indexing.rs
integral-indexing.stderr
integral-variable-unification-error.rs
integral-variable-unification-error.stderr
invalid_crate_type_syntax.rs
invalid_crate_type_syntax.stderr
invalid_dispatch_from_dyn_impls.rs
invalid_dispatch_from_dyn_impls.stderr
issue-11881.rs
issue-13560.rs
issue-15924.rs
issue-16822.rs
issue-18502.rs
issue-24106.rs
issue-76387-llvm-miscompile.rs
issues-71798.rs
issues-71798.stderr
item-name-overload.rs
kinds-in-metadata.rs
kinds-of-primitive-impl.rs
kinds-of-primitive-impl.stderr
last-use-in-block.rs
last-use-in-cap-clause.rs
last-use-is-capture.rs
lazy-and-or.rs
lexical-scopes.rs
lexical-scopes.stderr
lexical-scoping.rs
link-section.rs Make more of the test suite run on Mac Catalyst 2024-05-28 12:31:33 +02:00
list.rs
log-err-phi.rs
log-knows-the-names-of-variants.rs
log-poly.rs
logging-only-prints-once.rs
loud_ui.rs
max-min-classes.rs
maximal_mir_to_hir_coverage.rs
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
minus-string.stderr Change E0369 diagnostic give note information for foreign items. 2024-06-25 10:00:30 +08:00
missing_debug_impls.rs
missing_debug_impls.stderr
mod-subitem-as-enum-variant.rs
mod-subitem-as-enum-variant.stderr
monomorphize-abi-alignment.rs
msvc-data-only.rs
msvc-opt-minsize.rs rewrite test-harness to rmake 2024-07-02 11:37:59 -04:00
multibyte.rs
multiline-comment.rs
mut-function-arguments.rs
mutual-recursion-group.rs
myriad-closures.rs
nested-block-comment.rs
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
nested-class.rs
nested-ty-params.rs
nested-ty-params.stderr
new-impl-syntax.rs
new-import-syntax.rs
new-style-constants.rs
new-unicode-escapes.rs
newlambdas.rs
newtype-polymorphic.rs
newtype.rs
no-capture-arc.rs
no-capture-arc.stderr
no-core-1.rs
no-core-2.rs
no-link-unknown-crate.rs
no-link-unknown-crate.stderr
no-reuse-move-arc.rs
no-reuse-move-arc.stderr
no-send-res-ports.rs
no-send-res-ports.stderr
no-warn-on-field-replace-issue-34101.rs
no_crate_type.rs
no_crate_type.stderr
no_send-enum.rs
no_send-enum.stderr
no_send-rc.rs
no_send-rc.stderr
no_share-enum.rs
no_share-enum.stderr
no_share-struct.rs
no_share-struct.stderr
noexporttypeexe.rs
noexporttypeexe.stderr
non-constant-expr-for-arr-len.rs
non-constant-expr-for-arr-len.stderr
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
non-fmt-panic.rs
non-fmt-panic.stderr
noncopyable-class.rs
noncopyable-class.stderr
nonscalar-cast.fixed
nonscalar-cast.rs
nonscalar-cast.stderr
not-clone-closure.rs
not-clone-closure.stderr
not-copy-closure.rs
not-copy-closure.stderr
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
nullable-pointer-iotareduction.rs
nullable-pointer-size.rs
object-pointer-types.rs
object-pointer-types.stderr
objects-coerce-freeze-borrored.rs
occurs-check-2.rs
occurs-check-2.stderr
occurs-check-3.rs
occurs-check-3.stderr
occurs-check.rs
occurs-check.stderr
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
op-assign-builtins-by-ref.rs
opeq.rs
opt-in-copy.rs
opt-in-copy.stderr
optimization-remark.rs
out-pointer-aliasing.rs
output-slot-variants.rs
over-constrained-vregs.rs
panic-while-printing.rs
panic_implementation-closures.rs
paren-span.rs
paren-span.stderr
partialeq_help.rs
partialeq_help.stderr
path-lookahead.fixed
path-lookahead.rs
path-lookahead.stderr
path.rs
paths-containing-nul.rs
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
pptypedef.rs
pptypedef.stderr
primitive-binop-lhs-mut.rs
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
project-cache-issue-31849.rs
ptr-coercion-rpass.rs
ptr-coercion.rs
ptr-coercion.stderr
query-visibility.rs
raw-str.rs
realloc-16687.rs
reassign-ref-mut.rs
reassign-ref-mut.stderr
reexport-test-harness-main.rs
removing-extern-crate.fixed
removing-extern-crate.rs
removing-extern-crate.stderr
resource-assign-is-not-copy.rs
resource-destruct.rs
rustc-error.rs
rustc-error.stderr
seq-args.rs
seq-args.stderr Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
shadow-bool.rs
shadowed-use-visibility.rs
short-error-format.rs
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
sized-cycle-note.rs
sized-cycle-note.stderr
sized-owned-pointer.rs
sse2.rs `sudo CI=green` && Review changes <3 2024-06-25 18:06:22 +02:00
stable-addr-of.rs
std-uncopyable-atomics.rs
std-uncopyable-atomics.stderr
stdio-is-blocking.rs
string-box-error.rs
struct-ctor-mangling.rs
super-at-top-level.rs
super-at-top-level.stderr
super.rs
svh-add-nothing.rs
swap-1.rs
swap-overlapping.rs
switched-expectations.rs
switched-expectations.stderr
syntax-extension-minor.rs
tag-type-args.rs
tag-type-args.stderr
tag-variant-cast-non-nullary.fixed
tag-variant-cast-non-nullary.rs
tag-variant-cast-non-nullary.stderr
tail-call-arg-leak.rs
tail-cps.rs
tail-typeck.rs
tail-typeck.stderr
trailing-comma.rs
trait-method-number-parameters.rs
trait-method-number-parameters.stderr
transmute-equal-assoc-types.rs
transmute-non-immediate-to-immediate.rs
trivial_casts-rpass.rs
trivial_casts-rpass.stderr
try-from-int-error-partial-eq.rs
try-operator-hygiene.rs
try-operator.rs
tydesc-name.rs
type-id-higher-rank-2.rs
type-namespace.rs
type-param-constraints.rs
type-param.rs
type-ptr.rs
type-use-i1-versus-i8.rs
type_length_limit.polonius.stderr
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
typestate-multi-decl.rs
unconstrained-none.rs
unconstrained-none.stderr
unconstrained-ref.rs
unconstrained-ref.stderr
underscore-ident-matcher.rs
underscore-ident-matcher.stderr
underscore-lifetimes.rs
underscore-method-after-integer.rs
unevaluated_fixed_size_array_len.rs
unevaluated_fixed_size_array_len.stderr
uninit-empty-types.rs
unit.rs
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
unreachable-code-1.rs
unreachable-code.rs
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
unused-move.rs
unwind-no-uwtable.rs
use-import-export.rs
use-keyword-2.rs
use-module-level-int-consts.rs
use-nested-groups.rs
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
usize-generic-argument-parent.rs
usize-generic-argument-parent.stderr
utf8-bom.rs
utf8_idents.rs
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
weak-new-uninhabited-issue-48493.rs
weird-exit-code.rs
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
wrong-hashset-issue-42918.rs

README.md

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>.