rust/tests/ui
bors d163e5e515 Auto merge of #123737 - compiler-errors:alias-wf, r=lcnr
Check alias args for WF even if they have escaping bound vars

#### What

This PR stops skipping arguments of aliases if they have escaping bound vars, instead recursing into them and only discarding the resulting obligations referencing bounds vars.

#### An example:

From the test:
```
trait Trait {
    type Gat<U: ?Sized>;
}

fn test<T>(f: for<'a> fn(<&'a T as Trait>::Gat<&'a [str]>)) where for<'a> &'a T: Trait {}
//~^ ERROR the size for values of type `[()]` cannot be known at compilation time

fn main() {}
```

We now prove that `str: Sized` in order for `&'a [str]` to be well-formed. We were previously unconditionally skipping over `&'a [str]` as it referenced a buond variable. We now recurse into it and instead only discard the `[str]: 'a` obligation because of the escaping bound vars.

#### Why?

This is a change that improves consistency about proving well-formedness earlier in the pipeline, which is necessary for future work on where-bounds in binders and correctly handling higher-ranked implied bounds. I don't expect this to fix any unsoundness.

#### What doesn't it fix?

Specifically, this doesn't check projection predicates' components are well-formed, because there are too many regressions: https://github.com/rust-lang/rust/pull/123737#issuecomment-2052198478
2024-07-03 03:48:06 +00:00
..
abi Allow "C-unwind" fn to have C variadics 2024-06-22 15:14:14 -07:00
alloc-error Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
allocator Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
annotate-snippet
anon-params
argfile compiletest: add enable-by-default check-cfg 2024-05-04 11:30:38 +02:00
argument-suggestions Refactored a few bits: 2024-03-15 13:37:41 +00:00
array-slice-vec Change E0369 diagnostic give note information for foreign items. 2024-06-25 10:00:30 +08:00
asm Automatically taint InferCtxt when errors are emitted 2024-06-26 16:01:45 +00:00
associated-consts Use subtyping instead of equality, since method resolution also uses subtyping 2024-06-17 10:57:52 +00:00
associated-inherent-types Rollup merge of #125978 - fmease:cleanup-hir-ty-lowering-consolidate-assoc-item-access-checking, r=davidtwco 2024-06-12 03:57:19 -07:00
associated-item Deduplicate some logic and reword output 2024-02-22 18:05:28 +00:00
associated-type-bounds E0229: Suggest Moving Type Constraints to Type Parameter Declaration 2024-06-12 19:32:31 -04:00
associated-types Automatically taint InferCtxt when errors are emitted 2024-06-26 16:01:45 +00:00
async-await Make all tests in async dir build-pass, adjust implements-fnmut test to begin ICEing during codegen 2024-06-29 17:38:02 -04:00
attributes add rustc_dump_def_parents attribute 2024-06-30 19:31:21 +01:00
auto-traits Harmonize use of leaf and root obligation in trait error reporting 2024-06-12 20:57:23 -04:00
autoref-autoderef
auxiliary Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
backtrace Make more of the test suite run on Mac Catalyst 2024-05-28 12:31:33 +02:00
bench
binding Stabilize exclusive_range 2024-05-02 19:42:31 -04:00
binop Change E0369 diagnostic give note information for foreign items. 2024-06-25 10:00:30 +08:00
blind
block-result Deduplicate some logic and reword output 2024-02-22 18:05:28 +00:00
borrowck fix: prefer (*p).clone to p.clone if the p is a raw pointer 2024-06-29 19:58:18 +08:00
box Mention when type parameter could be Clone 2024-04-24 22:21:15 +00:00
btreemap Account for unops when suggesting cloning 2024-04-11 16:41:41 +00:00
builtin-superkinds
c-variadic compiler: Mention C-unwind in C-variadic error 2024-06-22 23:30:31 -07:00
cast FIx ICE while casting a type with error 2024-05-11 08:24:26 +05:30
cfg RFC 2383: Stabilize lint_reasons 🎉 2024-06-25 17:22:22 +02:00
check-cfg Fix stderr cases 2024-06-19 11:19:25 +05:30
closure_context
closure-expected-type Make nll higher ranked equate use bidirectional subtyping in invariant context 2024-02-29 15:27:59 -03:00
closures chore: remove duplicate words 2024-07-02 11:25:31 +08:00
cmse-nonsecure
codegen Deprecate no-op codegen option -Cinline-threshold=... 2024-06-14 20:25:17 +02:00
codemap_tests Fix remaining cases 2024-06-21 19:00:18 -04:00
coercion Remove windows-specific copy of test 2024-06-17 10:57:52 +00:00
coherence rustc_type_ir: Omit some struct fields from Debug output 2024-06-19 03:08:34 +02:00
coinduction
command Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
compare-method
compiletest-self-test compiletest: properly handle revisioned run-rustfix tests 2024-04-07 17:06:15 +00:00
conditional-compilation Fix parse error message for meta items 2024-05-10 09:16:27 +02:00
confuse-field-and-method Deduplicate some logic and reword output 2024-02-22 18:05:28 +00: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
const-generics Add test 2024-07-02 16:28:01 +01:00
const-ptr offset, offset_from: allow zero-byte offset on arbitrary pointers 2024-05-13 07:59:16 +02:00
consts Migrate tests to use -Znext-solver 2024-06-30 17:08:45 +00:00
coroutine Tighten spans for async blocks 2024-06-27 15:19:08 -04:00
coverage-attr coverage: Allow #[coverage(..)] on impl and mod 2024-06-26 10:08:05 +10:00
crate-loading Make not finding core a fatal error 2024-03-06 18:19:13 -05:00
cross Provide structured suggestion for #![feature(foo)] 2024-03-18 16:08:58 +00:00
cross-crate Closures are recursively reachable 2024-06-04 22:50:35 +02:00
custom_test_frameworks
cycle-trait Merge collect_mod_item_types query into check_well_formed 2024-03-07 14:26:31 +00:00
debuginfo Repair several riscv64gc-unknown-linux-gnu codegen tests 2024-06-05 09:39:14 -07:00
definition-reachable
delegation Rollup merge of #126947 - Bryanskiy:delegation-lowering-refactoring, r=petrochenkov 2024-06-25 21:33:45 +02: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 #125572 - mu001999-contrib:dead/enhance, r=pnkfelix 2024-06-07 20:14:28 +02:00
deriving Rollup merge of #126302 - mu001999-contrib:ignore/default, r=michaelwoerister 2024-06-25 21:33:41 +02:00
dest-prop
destructuring-assignment
diagnostic_namespace Walk into alias-eq nested goals even if normalization fails 2024-06-12 19:03:37 -04:00
diagnostic-flags tests: remove few ignore-stage2 2024-04-25 10:48:11 +03:00
diagnostic-width Suggest using --verbose when writing type to a file 2024-02-20 23:48:59 +01:00
did_you_mean Rollup merge of #126127 - Alexendoo:other-trait-diag, r=pnkfelix 2024-06-16 03:41:57 -04:00
directory_ownership
disallowed-deconstructing
dollar-crate
drop tail expression behind terminating scope 2024-06-18 04:14:43 +08:00
drop-bounds
dropck Suggest .clone() when moved while borrowed 2024-04-11 16:41:41 +00:00
dst
duplicate Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07: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 RFC 2383: Stabilize lint_reasons 🎉 2024-06-25 17:22:22 +02:00
entry-point Stabilize imported_main 2024-03-06 12:01:54 +00:00
enum Move some tests 2024-04-21 15:43:43 -03:00
enum-discriminant
env-macro Move option_env! and env! tests to the env-macro directory 2024-03-17 21:59:40 +00:00
error-codes Auto merge of #120924 - xFrednet:rfc-2383-stabilization-party, r=Urgau,blyxyas 2024-06-26 16:38:30 +00:00
error-emitter tests: remove some trailing ws 2024-04-27 10:54:31 +03:00
errors rewrite and rename issue-37893 to rmake 2024-05-29 11:38:47 -04:00
explicit
explicit-tail-calls Revert "Auto merge of #122140 - oli-obk:track_errors13, r=davidtwco" 2024-03-11 21:28:16 +00:00
expr Use parenthetical notation for Fn traits 2024-05-29 22:26:54 +00:00
extern Use parenthetical notation for Fn traits 2024-05-29 22:26:54 +00: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 Add feature diagnostic for unsafe_extern_blocks 2024-06-28 23:13:33 -03:00
ffi-attrs Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
fmt fix UI test, simplify error message 2024-06-25 23:43:19 +02:00
fn Auto merge of #125778 - estebank:issue-67100, r=compiler-errors 2024-06-03 08:14:03 +00: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 Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07: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 Tighten spans for async blocks 2024-06-27 15:19:08 -04:00
generic-const-items Migrate tests to use -Znext-solver 2024-06-30 17:08:45 +00:00
generics Automatically taint InferCtxt when errors are emitted 2024-06-26 16:01:45 +00:00
half-open-range-patterns Replace f16 and f128 pattern matching stubs with real implementations 2024-06-23 04:28:42 -05:00
hashmap compiletest: Add a //@ needs-threads directive 2024-03-06 12:35:07 -08:00
hello_world
higher-ranked Auto merge of #123737 - compiler-errors:alias-wf, r=lcnr 2024-07-03 03:48:06 +00:00
hygiene Tweak output of import suggestions 2024-06-13 20:22:21 +00:00
illegal-sized-bound
impl-header-lifetime-elision And more general error 2024-05-24 11:20:33 -04:00
impl-trait Auto merge of #126996 - oli-obk:do_not_count_errors, r=nnethercote 2024-07-01 06:35:58 +00:00
implied-bounds move leak check out of candidate evaluation 2024-04-03 22:32:46 +01:00
imports Fix import suggestion error when failed not from starting 2024-07-01 20:07:29 +08:00
include-macros diagnostics: fix crash on completely empty included file 2024-03-29 18:22:44 -07:00
incoherent-inherent-impls Fix remaining cases 2024-06-21 19:00:18 -04:00
indexing check index value <= 0xFFFF_FF00 2024-06-01 09:40:46 +08:00
inference Const generic parameters aren't bounds, even if we end up erroring because of the bound that binds the parameter's type 2024-06-19 14:58:29 +00:00
infinite Automatically taint InferCtxt when errors are emitted 2024-06-26 16:01:45 +00:00
inherent-impls-overlap-check
inline-const Add regression test 2024-06-07 08:33:58 +00:00
instrument-coverage Fix remaining cases 2024-06-21 19:00:18 -04:00
instrument-xray
interior-mutability rename 'try' intrinsic to 'catch_unwind' 2024-02-26 11:10:18 +01:00
internal
internal-lints Use the rustc_private libc less in tests 2024-04-15 08:54:11 -04:00
intrinsics bless tests 2024-06-21 11:57:24 +00: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 compiletest: Don't pass --out-dir if the compile flags include -o 2024-06-07 15:55:36 +10:00
issues Rollup merge of #126925 - surechen:fix_125631, r=compiler-errors 2024-06-26 07:50:18 +02:00
iterators Spell out other trait diagnostic 2024-06-12 12:34:47 +00:00
json
keyword
kindck Harmonize use of leaf and root obligation in trait error reporting 2024-06-12 20:57:23 -04:00
label
lang-items consistency rename: language item -> lang item 2024-04-17 13:00:43 +02:00
late-bound-lifetimes
layout Auto merge of #125740 - RalfJung:transmute-size-check, r=oli-obk 2024-06-25 07:21:17 +00:00
lazy-type-alias Spell out other trait diagnostic 2024-06-12 12:34:47 +00:00
lazy-type-alias-impl-trait
let-else Fix ... in multline code-skips in suggestions 2024-06-20 04:25:17 +00:00
lexer Rollup merge of #123752 - estebank:emoji-prefix, r=wesleywiser 2024-04-18 21:38:55 -07:00
lifetimes Fix remaining cases 2024-06-21 19:00:18 -04:00
limits
linkage-attr add non-regression test for issue 127052 2024-06-28 20:59:33 +00:00
lint Rollup merge of #126018 - nnethercote:rm-box_pointers-lint, r=lcnr 2024-06-30 18:25:31 +02:00
liveness Error on using yield without also using #[coroutine] on the closure 2024-04-24 08:05:29 +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 Fix some typos in comments 2024-04-25 10:47:24 +08:00
lub-glb Rollup merge of #121475 - jieyouxu:tidy-stderr-check, r=the8472,compiler-errors 2024-03-01 17:51:29 +01:00
macro_backtrace
macros Ensure out_of_scope_macro_calls lint is registered 2024-07-01 00:25:25 +01:00
malformed Auto merge of #124187 - compiler-errors:self-ctor, r=petrochenkov 2024-05-25 01:17:55 +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 Replace f16 and f128 pattern matching stubs with real implementations 2024-06-23 04:28:42 -05:00
meta Handle a few more simple tests 2024-05-20 11:13:10 -04:00
methods Method resolution constrains hidden types instead of rejecting method candidates 2024-06-13 10:41:53 +00:00
mir Auto merge of #127024 - cjgillot:jump-prof, r=oli-obk 2024-06-30 11:09:53 +00:00
mir-dataflow
mismatched_types Tighten spans for async blocks 2024-06-27 15:19:08 -04:00
missing
missing_non_modrs_mod
missing-trait-bounds Use fulfillment, not evaluate, during method probe 2024-04-21 20:10:12 -04:00
modules Move tests 2024-04-07 17:38:07 -03:00
modules_and_files_visibility
moves Fix ... in multline code-skips in suggestions 2024-06-20 04:25:17 +00:00
mut Suggest ref mut for pattern matching assignment 2024-04-25 04:54:25 +08:00
namespace Tweak output of import suggestions 2024-06-13 20:22:21 +00:00
native-library-link-flags
never_type Rollup merge of #126127 - Alexendoo:other-trait-diag, r=pnkfelix 2024-06-16 03:41:57 -04:00
nll tail expression behind terminating scope 2024-06-18 04:14:43 +08: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
object-lifetime make type_flags(ReError) & HAS_ERROR 2024-03-20 17:29:58 +00:00
object-safety Fix remaining cases 2024-06-21 19:00:18 -04:00
obsolete-in-place
offset-of offset_of: allow (unstably) taking the offset of slice tail fields 2024-06-08 18:17:55 +02:00
on-unimplemented Spell out other trait diagnostic 2024-06-12 12:34:47 +00:00
operator-recovery
or-patterns Add tests 2024-06-16 18:23:48 +02:00
overloaded
packed Error on using yield without also using #[coroutine] on the closure 2024-04-24 08:05:29 +00:00
panic-handler Rename std::panic::PanicInfo to PanicHookInfo. 2024-06-11 15:47:00 +02:00
panic-runtime Enable a few tests on macOS 2024-05-28 12:31:12 +02:00
panics Remove c_unwind from tests and fix tests 2024-06-19 13:54:55 +01:00
parallel-rustc
parser Migrate tests to use -Znext-solver 2024-06-30 17:08:45 +00:00
patchable-function-entry Updated diagnostic messages 2024-06-27 22:24:36 +02:00
pattern Tighten spans for async blocks 2024-06-27 15:19:08 -04:00
pin-macro
polymorphization Mark all missing generic args as errors 2024-06-03 13:16:56 +00: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 Do not ICE in privacy when type inference fails. 2024-06-17 10:09:27 +00:00
proc-macro resolve: Implement a lint for out-of-scope use of macro_rules 2024-06-24 17:12:08 +03:00
process Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
process-termination compiletest: Add a //@ needs-threads directive 2024-03-06 12:35:07 -08:00
ptr_ops
pub Rollup merge of #125913 - fmease:early-lints-spruce-up-some-diags, r=Nadrieril 2024-06-11 09:14:34 +01:00
qualified
query-system
range Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
raw-ref-op turn pointer_structural_match into a hard error 2024-05-03 15:56:59 +02:00
reachable Make type_ascribe! not a built-in 2024-03-20 22:28:56 -04:00
recursion Move some tests 2024-04-21 15:43:43 -03:00
recursion_limit
regions Do not ICE when suggesting dereferencing closure arg 2024-06-24 03:39:54 +00:00
repeat-expr
repr Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
reserved
resolve collect attrs in const block expr 2024-06-20 19:59:27 +08:00
return Use full expr span for return suggestion on type error/ambiguity 2024-06-30 23:11:54 -04:00
rfcs Migrate tests to use -Znext-solver 2024-06-30 17:08:45 +00:00
rmeta
runtime Disable stack overflow handler tests on iOS-like platforms 2024-05-28 12:31:12 +02:00
rust-2018 Tweak output of import suggestions 2024-06-13 20:22:21 +00:00
rust-2021 Detect unused structs which implement private traits 2024-05-23 09:07:59 +08:00
rust-2024 Rollup merge of #126973 - chenyukang:yukang-fix-126756-unsafe-suggestion-error, r=spastorino 2024-06-26 07:50:21 +02:00
rustc-env note value of RUST_MIN_STACK and explain unsetting 2024-05-19 20:09:03 -07:00
rustdoc Update ui tests 2024-02-29 14:43:43 +01:00
sanitizer Undo accidental change to tests/ui/sanitizer/thread.rs 2024-05-20 11:13:33 -04:00
self Require any function with a tait in its signature to actually constrain a hidden type 2024-06-12 08:53:59 +00:00
sepcomp
shadowed Tweak wording of "implemented trait isn't imported" suggestion 2024-02-22 18:05:27 +00:00
shell-argfiles compiletest: add enable-by-default check-cfg 2024-05-04 11:30:38 +02:00
simd test: dont optimize to invalid bitcasts 2024-06-24 16:54:18 -07:00
single-use-lifetime Add test to check unused_lifetimes don't duplicate "parameter is never used" error 2024-03-09 18:24:45 +00:00
sized don't ICE when encountering an extern type field during validation 2024-06-22 17:39:01 +02:00
span Fix ... in multline code-skips in suggestions 2024-06-20 04:25:17 +00:00
specialization bless tests part 1 2024-06-28 10:57:35 +00:00
stability-attribute Migrate tests to use -Znext-solver 2024-06-30 17:08:45 +00:00
stable-mir-print Add needs-unwind annotations to a couple of tests 2024-03-25 14:19:07 +00:00
stack-protector
static Automatically taint InferCtxt when errors are emitted 2024-06-26 16:01:45 +00:00
statics Add regression test 2024-06-17 10:55:42 +00:00
stats ast: Standardize visiting order 2024-06-26 17:41:24 +03: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 tests: remove some trailing ws 2024-04-27 10:54:31 +03:00
structs Handle normalization failure in struct_tail_erasing_lifetimes 2024-05-01 09:29:33 +05:30
structs-enums Detect pub structs never constructed and unused associated constants in traits 2024-06-05 23:20:09 +08:00
suggestions Add a regression test for #123630 2024-06-30 07:12:26 -04:00
svh
symbol-mangling-version
symbol-names Enable v0 mangling tests and add checks for f16/f128 2024-05-14 06:16:48 -04:00
sync Add manual Sync impl for ReentrantLockGuard 2024-05-24 17:44:37 -07:00
target-feature RFC 2383: Stabilize lint_reasons 🎉 2024-06-25 17:22:22 +02:00
test-attrs Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
thir-print Rename BindingAnnotation to BindingMode 2024-04-17 09:34:39 -04:00
thread-local compiletest: Add a //@ needs-threads directive 2024-03-06 12:35:07 -08:00
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 remaining cases 2024-06-21 19:00:18 -04:00
track-diagnostics tests: bless ui and rustdoc-ui tests for ICE messages 2024-04-09 13:58:52 +00:00
trait-bounds Rollup merge of #122195 - jieyouxu:impl-return-note, r=fmease 2024-03-22 20:31:28 +01:00
traits chore: remove duplicate words 2024-07-02 11:25:31 +08:00
transmutability Rollup merge of #126620 - oli-obk:taint_errors, r=fee1-dead 2024-06-20 07:52:43 +02:00
transmute transmute size check: properly account for alignment 2024-05-30 10:06:28 +02:00
treat-err-as-bug
trivial-bounds Suggest .clone() in some move errors 2024-04-11 16:41:41 +00:00
try-block Fix accuracy of T: Clone check in suggestion 2024-04-11 16:41:41 +00:00
try-trait Fix ... in multline code-skips in suggestions 2024-06-20 04:25:17 +00:00
tuple Refactored a few bits: 2024-03-15 13:37:41 +00:00
type Spell out other trait diagnostic 2024-06-12 12:34:47 +00:00
type-alias
type-alias-enum-variants Update documentation 2024-03-20 09:49:57 +00:00
type-alias-impl-trait Auto merge of #126996 - oli-obk:do_not_count_errors, r=nnethercote 2024-07-01 06:35:58 +00:00
type-inference Use fn ptr signature instead of {closure@..} in infer error 2024-04-10 00:41:27 +00:00
typeck Rollup merge of #127110 - surechen:fix_125488_06, r=compiler-errors 2024-06-29 22:10:58 +02:00
typeof
ufcs bless tests 2024-06-21 11:57:24 +00:00
unboxed-closures Fix ... in multline code-skips in suggestions 2024-06-20 04:25:17 +00:00
underscore-imports Tweak wording of "implemented trait isn't imported" suggestion 2024-02-22 18:05:27 +00:00
underscore-lifetime make type_flags(ReError) & HAS_ERROR 2024-03-20 17:29:58 +00:00
uniform-paths
uninhabited Handle more cases of value suggestions 2024-04-10 20:36:14 +00:00
union Mention when type parameter could be Clone 2024-04-24 22:21:15 +00:00
unknown-unstable-lints
unop Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
unpretty Parenthesize break values containing leading label 2024-07-01 17:19:58 -07:00
unresolved
unsafe Use parenthetical notation for Fn traits 2024-05-29 22:26:54 +00:00
unsized [ACP 362] genericize ptr::from_raw_parts 2024-05-29 09:34:16 -07: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 tests: remove some trailing ws 2024-04-27 10:54:31 +03:00
variants
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 Taint infcx when reporting errors 2024-06-19 04:41:56 +00:00
where-clauses Taint infcx when reporting errors 2024-06-19 04:41:56 +00:00
while
windows-subsystem Move run-make windows_subsystem tests to ui tests 2024-05-29 13:04:28 +00:00
zero-sized
.gitattributes
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
assign-imm-local-twice.stderr
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 fix test 2024-02-22 18:05:28 +00:00
attempted-access-non-fatal.rs
attempted-access-non-fatal.stderr
attr-bad-crate-attr.rs
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 Account for assign binops in clone suggestions 2024-04-11 16:41:41 +00:00
augmented-assignments.stderr Account for assign binops in clone suggestions 2024-04-11 16:41:41 +00:00
auto-instantiate.rs
auto-ref-slice-plus-ref.rs
auto-ref-slice-plus-ref.stderr Consider methods from traits when suggesting typos 2024-02-22 18:04:55 +00:00
autoderef-full-lval.rs
autoderef-full-lval.stderr Change E0369 diagnostic give note information for foreign items. 2024-06-25 10:00:30 +08:00
bare-fn-implements-fn-mut.rs
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
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
complex.rs
conservative_impl_trait.rs
conservative_impl_trait.stderr
constructor-lifetime-args.rs
constructor-lifetime-args.stderr
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.rs
custom_attribute.stderr
custom-attribute-multisegment.rs
custom-attribute-multisegment.stderr
custom-test-frameworks-simple.rs
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 Rename std::panic::PanicInfo to PanicHookInfo. 2024-06-11 15:47:00 +02: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 Update ui tests 2024-02-29 14:43:43 +01:00
future-incompatible-lint-group.stderr Update ui tests 2024-02-29 14:43:43 +01:00
global-scope.rs
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 Allow unused fields in some tests 2024-03-12 10:59:41 +01:00
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 Merge check_mod_impl_wf and check_mod_type_wf 2024-03-07 06:27:09 +00:00
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 Use root obligation on E0277 for some cases 2024-03-03 18:53:35 +00:00
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 compiletest: Add a //@ needs-threads directive 2024-03-06 12:35:07 -08:00
loud_ui.rs
max-min-classes.rs
maximal_mir_to_hir_coverage.rs
maybe-bounds.rs
maybe-bounds.stderr
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
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_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
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
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
nul-characters.rs
nullable-pointer-iotareduction.rs
nullable-pointer-size.rs
object-pointer-types.rs
object-pointer-types.stderr Deduplicate some logic and reword output 2024-02-22 18:05:28 +00:00
objects-coerce-freeze-borrored.rs
occurs-check-2.rs change error messages to be incorrect, but more helpful 2024-02-22 18:18:33 +01:00
occurs-check-2.stderr change error messages to be incorrect, but more helpful 2024-02-22 18:18:33 +01:00
occurs-check-3.rs change error messages to be incorrect, but more helpful 2024-02-22 18:18:33 +01:00
occurs-check-3.stderr change error messages to be incorrect, but more helpful 2024-02-22 18:18:33 +01:00
occurs-check.rs change error messages to be incorrect, but more helpful 2024-02-22 18:18:33 +01:00
occurs-check.stderr change error messages to be incorrect, but more helpful 2024-02-22 18:18:33 +01:00
once-cant-call-twice-on-heap.rs
once-cant-call-twice-on-heap.stderr Better account for FnOnce in move errors 2024-04-11 16:41:42 +00:00
oom_unwind.rs
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_implementation-closures.rs
panic-while-printing.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 Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
phantom-auto-trait.rs
phantom-auto-trait.stderr
point-to-type-err-cause-on-impl-trait-return-2.rs
point-to-type-err-cause-on-impl-trait-return-2.stderr
pptypedef.rs
pptypedef.stderr
primitive-binop-lhs-mut.rs
print-stdout-eprint-stderr.rs Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
project-cache-issue-31849.rs
ptr-coercion-rpass.rs
ptr-coercion.rs
ptr-coercion.stderr
query-visibility.rs
raw-str.rs
README.md
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
shadow-bool.rs
shadowed-use-visibility.rs
short-error-format.rs
short-error-format.stderr
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 Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
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 Merge collect_mod_item_types query into check_well_formed 2024-03-07 14:26:31 +00:00
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_length_limit.polonius.stderr
type_length_limit.rs
type_length_limit.stderr
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
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
unknown-llvm-arg.stderr
unnamed_argument_mode.rs
unreachable-code-1.rs
unreachable-code.rs
unsigned-literal-negation.rs
unsigned-literal-negation.stderr
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_idents.rs
utf8-bom.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

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