granite-rust/tests/ui
Jacob Pratt e2993cd06e
Rollup merge of #132795 - compiler-errors:refine-rpitit, r=lcnr
Check `use<..>` in RPITIT for refinement

`#![feature(precise_capturing_in_traits)]` allows users to write `+ use<>` bounds on RPITITs to control what lifetimes are captured by the RPITIT.

Since RPITITs currently also warn for refinement in implementations, this PR extends that refinement check for cases where we *undercapture* in an implementation, since that may be indirectly "promising" a more relaxed outlives bound than the impl author intended.

For an opaque to be refining, we need to capture *fewer* parameters than those mentioned in the captured params of the trait. For example:

```
trait TypeParam<T> {
    fn test() -> impl Sized;
}
// Indirectly capturing a lifetime param through a type param substitution.
impl<'a> TypeParam<&'a ()> for i32 {
    fn test() -> impl Sized + use<> {}
    //~^ WARN impl trait in impl method captures fewer lifetimes than in trait
}
```

Since the opaque in the method (implicitly) captures `use<Self, T>`, and `Self = i32, T = &'a ()` in the impl, we must mention `'a` in our `use<..>` on the impl.

Tracking:
* https://github.com/rust-lang/rust/issues/130044
2024-11-17 22:30:47 -05:00
..
abi Add v8plus target feature to sparc and use it in create_object_file 2024-11-09 03:22:09 +09:00
alloc-error
allocator UI tests: Rename "object safe" to "dyn compatible" 2024-10-10 01:13:29 +02:00
annotate-snippet
anon-params More accurate span for anonymous argument suggestion 2024-07-18 00:19:27 +00:00
argfile
argument-suggestions Added more scenarios where commas need to be removed 2024-10-20 17:14:53 +08:00
array-slice-vec Tweak more warnings. 2024-10-28 14:20:28 +11:00
asan-odr-win PassWrapper: disable UseOdrIndicator for Asan Win32 2024-11-14 04:20:18 +08:00
asm Stabilize Arm64EC inline assembly 2024-11-10 17:43:46 +09:00
associated-consts Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
associated-inherent-types use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
associated-item Compiler: Rename "object safe" to "dyn compatible" 2024-09-25 13:26:48 +02:00
associated-type-bounds Actually capture all in-scope lifetimes. 2024-10-30 16:22:23 +00:00
associated-types Make sure to ignore elided lifetimes when pointing at args for fulfillment errors 2024-11-12 02:08:39 +00:00
async-await Manually register some bounds for a better span 2024-11-08 04:56:08 +00:00
attributes misapplied optimize attribute throws a compilation error (#128488) 2024-10-20 08:34:15 -06:00
auto-traits Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
autodiff Add pretty, ui, and feature-gate tests for the enzyme/autodiff frontend 2024-10-11 20:38:43 +02:00
autoref-autoderef
auxiliary mark some target features as 'forbidden' so they cannot be (un)set 2024-11-04 22:56:47 +01:00
backtrace Emscripten: Xfail backtrace ui tests 2024-10-16 12:22:14 +02:00
bench
binding Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
binop Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
blind Accurate use rename suggestion span 2024-07-18 00:00:04 +00:00
block-result Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
borrowck Re-do recursive const stability checks 2024-10-25 20:31:40 +02:00
box use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08: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 Check ABI target compatibility for function pointers 2024-09-23 14:04:22 +02:00
cast Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
cfg Handle gracefully true/false in cfg(target(..)) compact 2024-10-16 09:41:49 +02:00
check-cfg Stabilize WebAssembly multivalue, reference-types, and tail-call target features 2024-11-10 07:45:14 -08:00
closure-expected-type
closure_context
closures Suggest borrowing arguments in generic positions when trait bounds are satisfied 2024-11-13 20:29:40 -08:00
cmse-nonsecure improve error messages for C-cmse-nonsecure-entry functions 2024-10-14 22:32:32 +02:00
codegen move strict provenance lints to new feature gate, remove old feature gates 2024-10-21 15:22:17 +01:00
codemap_tests Add Unicode block-drawing compiler output support 2024-11-10 23:57:18 +01:00
coercion Check allow instantiating object trait binder when upcasting and in new solver 2024-09-26 22:26:29 -04:00
coherence Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
coinduction
command Fix must_use lint for command exec tests 2024-10-17 06:33:35 -07:00
compare-method show unit output when there is only output diff in diagnostics 2024-07-06 21:00:30 +08:00
compiletest-self-test tests/ui: add minicore compiletest self-test 2024-10-31 18:20:11 +08:00
conditional-compilation use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
confuse-field-and-method
const-generics Handle infer vars in anon consts on stable 2024-11-12 21:36:42 +00:00
const-ptr on a signed deref check, mention the right pointer in the error 2024-08-01 14:25:19 +02:00
const_prop
consts Rollup merge of #133116 - RalfJung:const-null-ptr, r=dtolnay 2024-11-17 23:56:10 +08:00
coroutine Add --diagnostic-width to some tests failing after 1a0c502183 2024-11-06 20:02:42 +01:00
coverage-attr Rename directive needs-profiler-support to needs-profiler-runtime 2024-10-09 20:58:27 +11:00
crate-loading
cross
cross-crate
custom_test_frameworks
cycle-trait
debuginfo TL note: current means target 2024-09-20 10:02:14 -07:00
definition-reachable
delegation Don't trigger never type lint in a delegation test 2024-11-12 22:23:01 +01:00
dep-graph
deprecation Deprecate no-op codegen option -Cinline-threshold=... 2024-06-14 20:25:17 +02:00
deref-patterns
derived-errors
derives Rollup merge of #131153 - VulnBandit:copy_impl_vuln, r=compiler-errors 2024-11-04 20:40:44 -08:00
deriving Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
dest-prop
destructuring-assignment add third help hint to diagnostic error E0027 2024-10-24 03:17:28 -04:00
diagnostic-flags
diagnostic-width Add Unicode block-drawing compiler output support 2024-11-10 23:57:18 +01:00
diagnostic_namespace Rollup merge of #132583 - mejrs:tuples, r=compiler-errors 2024-11-04 18:12:48 +01:00
did_you_mean Rollup merge of #130826 - fmease:compiler-mv-obj-safe-dyn-compat, r=compiler-errors 2024-09-27 21:35:08 +02:00
directory_ownership
disallowed-deconstructing
dollar-crate
drop Rollup merge of #131984 - dingxiangfei2009:stabilize-if-let-rescope, r=traviscross,lcnr 2024-10-29 18:38:57 +01:00
drop-bounds
dropck Tweak E0320 overflow error wording 2024-11-05 21:54:45 +00:00
dst Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
duplicate Explicitly mark a hack as a HACK and elaborate its comment 2024-09-18 19:36:44 +02:00
dyn-compatibility Don't assume traits used as type are trait objs 2024-10-11 17:36:04 +02:00
dyn-drop
dyn-keyword Don't assume traits used as type are trait objs 2024-10-11 17:36:04 +02:00
dyn-star unify dyn* coercions with other pointer coercions 2024-09-24 22:17:55 +02:00
dynamically-sized-types
editions Mention both release *and* edition breakage for never type lints 2024-11-14 01:32:54 +01:00
empty Suggest the struct variant pattern syntax on usage of unit variant pattern for a struct variant 2024-08-28 22:55:57 +09:00
entry-point
enum Properly suggest E::assoc when we encounter E::Variant::assoc 2024-11-03 18:55:19 +00:00
enum-discriminant Update tests 2024-08-10 12:07:17 +02:00
env-macro
error-codes remove support for rustc_safe_intrinsic attribute; use rustc_intrinsic functions instead 2024-11-08 09:16:00 +01:00
error-emitter Add Unicode block-drawing compiler output support 2024-11-10 23:57:18 +01:00
errors Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00: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 remove support for rustc_safe_intrinsic attribute; use rustc_intrinsic functions instead 2024-11-08 09:16:00 +01:00
extern-flag Include the "unwind" crate to link with libunwind instead of the "libc" crate. 2024-11-14 10:51:28 -05:00
feature-gates Rollup merge of #132541 - RalfJung:const-stable-extern-crate, r=compiler-errors 2024-11-12 18:11:04 +01:00
ffi-attrs
float move f16/f128 const fn under f16/f128 feature gate 2024-10-05 10:13:18 +02:00
fmt Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
fn Enforce supertrait outlives obligations hold when confirming impl 2024-08-05 09:55:14 -04:00
fn-main
for Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
for-loop-while Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
foreign Don't ICE on Fn trait error for foreign fn 2024-08-16 14:10:06 -04:00
fuel
fully-qualified-type
function-pointer Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
functional-struct-update Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
functions-closures
generic-associated-types Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
generic-const-items Yeet effects feature 2024-11-03 18:59:31 +00:00
generics elided_named_lifetimes: bless & add tests 2024-08-31 15:35:42 +03:00
half-open-range-patterns On function and method calls in patterns, link to the book 2024-10-06 01:44:59 +00:00
hashmap
hello_world
higher-ranked Make sure to ignore elided lifetimes when pointing at args for fulfillment errors 2024-11-12 02:08:39 +00:00
hygiene Bless a test for #70963 2024-09-20 01:20:10 +03:00
illegal-sized-bound
impl-header-lifetime-elision
impl-trait Check use<..> in RPITIT for refinement 2024-11-18 00:27:44 +00:00
implied-bounds Adjust tests 2024-09-05 06:37:38 -04:00
imports use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
include-macros
incoherent-inherent-impls Fix remaining cases 2024-06-21 19:00:18 -04:00
indexing Trim output of E0277 in some cases 2024-11-02 03:08:04 +00:00
inference use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
infinite only query params_in_repr if def kind is adt 2024-10-02 17:36:31 +08:00
inherent-impls-overlap-check
inline-const Add test cases 2024-11-13 22:35:39 +02:00
instrument-coverage coverage. Adapt to mcdc mapping formats introduced by llvm 19 2024-10-08 11:15:24 +08:00
instrument-xray
interior-mutability Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
internal use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
internal-lints
intrinsics Likely unlikely fix 2024-11-17 21:49:10 +01:00
invalid Fix ICE when passing DefId-creating args to legacy_const_generics. 2024-11-16 01:07:51 +01:00
invalid-compile-flags Rollup merge of #132259 - mrkajetanp:branch-protection-pauth-lr, r=davidtwco 2024-11-05 20:10:49 +01: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 Increase accuracy of if condition misparse suggestion 2024-11-16 20:03:31 +00:00
iterators Don't suggest .into_iter() on iterators 2024-11-08 17:43:13 -08:00
json Annotate input reference tests 2024-10-30 16:47:47 -07:00
keyword Structured suggestion for extern crate foo when foo isn't resolved in import 2024-07-29 23:49:51 +00:00
kindck Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00: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 Auto merge of #132173 - veluca93:abi_checks, r=RalfJung,compiler-errors 2024-11-10 02:52:25 +00:00
lazy-type-alias Don't call const normalize in error reporting 2024-09-22 13:55:06 -04:00
lazy-type-alias-impl-trait
let-else Reword suggestion message 2024-11-16 20:03:31 +00:00
lexer Annotate input reference tests 2024-10-30 16:47:47 -07:00
lifetimes ensure that tail expr receive lifetime extension 2024-11-11 20:34:36 +08:00
limits TL note: current means target 2024-09-20 10:02:14 -07:00
linkage-attr port tests/ui/linkage-attr/framework to run-make 2024-10-27 21:23:28 -04:00
lint Rollup merge of #133051 - estebank:cond-misparse, r=jieyouxu 2024-11-17 23:56:08 +08: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
lto Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03:00
lub-glb
macro_backtrace
macros use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
malformed Be more accurate about calculating display_col from a BytePos 2024-07-18 20:08:38 +00:00
manual
marker_trait_attr
match Match ergonomics 2024: test type inference 2024-07-05 11:17:49 -04:00
meta Remap path refix in the panic message 2024-10-12 09:41:42 +08:00
methods Don't give method suggestions when method probe fails due to bad impl of Deref 2024-09-29 11:57:18 -04:00
mir Validate and test -Zmir-enable-passes 2024-11-12 13:28:05 +00:00
mir-dataflow
mismatched_types Add test for str for "expected primitive, found type" 2024-11-09 00:23:53 -06:00
missing Reword suggestion message 2024-11-16 20:03:31 +00:00
missing-trait-bounds
missing_non_modrs_mod
modules Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
modules_and_files_visibility
moves Suggest borrowing arguments in generic positions when trait bounds are satisfied 2024-11-13 20:29:40 -08:00
mut Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +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 Mark never_type_fallback_flowing_into_unsafe as a semantic change 2024-11-14 06:01:14 +01:00
nll stabilize if_let_rescope 2024-10-24 04:33:14 +08:00
no_std
non_modrs_mods
non_modrs_mods_and_inline_mods
not-panic Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
numbers-arithmetic Don't call const normalize in error reporting 2024-09-22 13:55:06 -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 Hack around a conflict with clippy::needless_lifetimes 2024-09-06 17:06:35 +03:00
obsolete-in-place
offset-of use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
on-unimplemented Rollup merge of #132583 - mejrs:tuples, r=compiler-errors 2024-11-04 18:12:48 +01:00
operator-recovery Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00:00
or-patterns Tweak more warnings. 2024-10-28 14:20:28 +11:00
overloaded Suggest creating unary tuples 2024-11-04 12:06:19 +01:00
packed stabilize raw_ref_op 2024-08-18 19:46:53 +02:00
panic-handler fix typo in 'lang item with track_caller' message 2024-10-05 17:12:46 +02:00
panic-runtime
panics Add and adapt tests 2024-09-27 14:40:38 +01:00
parallel-rustc
parser Rollup merge of #133060 - tyrone-wu:removelet-span-suggestion, r=jieyouxu 2024-11-17 23:56:09 +08:00
patchable-function-entry Updated diagnostic messages 2024-06-27 22:24:36 +02:00
pattern Also check if let chains with multiple lets in these two tests 2024-11-16 05:01:52 +01:00
pin-macro use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
polymorphization Don't inline tainted MIR bodies 2024-08-08 20:53:25 -04:00
precondition-checks Warn on redundant --cfg directive when revisions are used 2024-10-19 12:40:12 +00:00
print-request Add --print host-triple 2024-11-02 21:29:59 +01:00
print_type_sizes tests: ignore-debug -> ignore-std-debug-assertions 2024-10-31 17:33:42 +08:00
privacy Rename Receiver -> LegacyReceiver 2024-10-22 12:55:16 +00:00
proc-macro remove attributes from generics in built-in derive macros 2024-11-11 21:20:02 +02:00
process Fix most ui tests on emscripten target 2024-10-15 14:25:55 +02:00
process-termination
ptr_ops
pub Bless test fallout 2024-08-03 07:57:31 -04:00
qualified
query-system
range Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
raw-ref-op Be far more strict about what we consider to be a read of never 2024-10-05 19:10:47 -04:00
reachable Be far more strict about what we consider to be a read of never 2024-10-05 19:10:47 -04:00
recursion Tweak E0320 overflow error wording 2024-11-05 21:54:45 +00:00
recursion_limit
regions be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
repeat-expr Account for let foo = expr; to suggest const foo: Ty = expr; 2024-07-11 20:39:24 +00:00
repr remove support for extern-block const intrinsics 2024-11-04 23:27:45 +01:00
reserved
resolve use verbose for path separator suggestion 2024-11-08 16:58:19 +00:00
return Fixing span manipulation and indentation of the suggestion introduced by #126187 2024-08-25 20:30:06 +08:00
rfcs Add regression test for issue #103476, fixed in edition 2024 2024-11-16 05:21:09 +01:00
rmeta
runtime std: fix stdout-before-main 2024-10-12 13:01:36 +02:00
rust-2018 diagnostics: do not warn when a lifetime bound infers itself 2024-08-09 16:16:16 -07:00
rust-2021 Don't assume traits used as type are trait objs 2024-10-11 17:36:04 +02:00
rust-2024 Remove unadorned 2024-10-11 11:30:08 -04:00
rustc-env
rustdoc Be more accurate about calculating display_col from a BytePos 2024-07-18 20:08:38 +00:00
sanitizer Warn on redundant --cfg directive when revisions are used 2024-10-19 12:40:12 +00:00
self Reject generic self types. 2024-10-30 10:48:08 +00:00
sepcomp
shadowed
shell-argfiles
simd Update the minimum external LLVM to 18 2024-09-18 13:53:31 -07:00
single-use-lifetime
sized On function and method calls in patterns, link to the book 2024-10-06 01:44:59 +00:00
span Don't call const normalize in error reporting 2024-09-22 13:55:06 -04:00
specialization Gate checking ~const bounds on const_trait_impl 2024-11-03 18:48:24 +00:00
stability-attribute remove support for extern-block const intrinsics 2024-11-04 23:27:45 +01:00
stable-mir-print [StableMIR] A few fixes to pretty printing 2024-11-07 16:16:38 -08:00
stack-protector
static Don't emit null pointer lint for raw ref of null deref 2024-10-06 22:36:51 -04:00
statics Rollup merge of #132095 - gechelberger:fix-131977, r=wesleywiser 2024-11-07 18:48:21 -08:00
stats Represent TraitBoundModifiers as distinct parts in HIR 2024-10-22 19:48:44 +00:00
std This test needs threads 2024-11-07 18:18:34 -08:00
stdlib-unit-tests
str Trim output of E0277 in some cases 2024-11-02 03:08:04 +00:00
structs add third help hint to diagnostic error E0027 2024-10-24 03:17:28 -04:00
structs-enums make UI test OS-agnostic 2024-11-15 16:37:18 +01:00
suggestions Provide placeholder generic arguments for traits in "no method found for type parameter" suggestions 2024-11-11 12:33:15 -08: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 Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
target-feature Add v9 and leoncasa target feature to sparc 2024-11-09 03:17:24 +09:00
test-attrs Update name of Windows abort constant to match platform documentation 2024-07-15 22:21:41 +00:00
thir-print Lower AST node id only once 2024-10-28 14:12:17 +08:00
thread-local Auto merge of #124895 - obeis:static-mut-hidden-ref, r=compiler-errors 2024-09-20 17:25:34 +00:00
threads-sendsync format code in tests/ui/threads-sendsync 2024-08-24 05:32:52 +02:00
tool-attributes Fix diagnostic and add a test for it 2024-07-10 18:56:06 -04:00
track-diagnostics Always use a colon in //@ normalize-*: headers 2024-07-11 12:23:44 +10:00
trait-bounds Validate associated type bounds on ? 2024-10-31 00:09:52 +00:00
traits Rollup merge of #133001 - lcnr:test-next-solver, r=compiler-errors 2024-11-13 21:04:27 +01:00
transmutability use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08: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 Add trait diff highlighting logic and use it in E0277 2024-11-02 03:08:04 +00:00
try-trait Trim output of E0277 in some cases 2024-11-02 03:08:04 +00:00
tuple Use ordinal number in argument error 2024-07-14 13:50:09 +09:00
type use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08: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 Suggest the struct variant pattern syntax on usage of unit variant pattern for a struct variant 2024-08-28 22:55:57 +09:00
type-alias-impl-trait Deny capturing late-bound ty/ct params in nested opaques 2024-11-10 04:30:33 +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 fix test 2024-11-07 20:56:36 +00:00
typeof Account for let foo = expr; to suggest const foo: Ty = expr; 2024-07-11 20:39:24 +00:00
ufcs Don't call const normalize in error reporting 2024-09-22 13:55:06 -04: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
uniform-paths
uninhabited Add a machine-applicable suggestion to "unreachable pattern" 2024-09-13 21:01:29 +02:00
union Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +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 Print unsafety of attribute in AST unpretty 2024-10-26 13:33:36 +02:00
unresolved Structured suggestion for extern crate foo when foo isn't resolved in import 2024-07-29 23:49:51 +00:00
unsafe Reword suggestion message 2024-11-16 20:03:31 +00:00
unsized Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
unsized-locals Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
unused-crate-deps
unwind-abis Remove c_unwind from tests and fix tests 2024-06-19 13:54:55 +01:00
use Suppress import errors for traits that couldve applied in method lookup on error 2024-10-14 14:40:11 -04:00
variance Don't report bivariance error when nesting a struct with field errors into another struct 2024-10-15 14:58:54 -04:00
variants Accurate use rename suggestion span 2024-07-18 00:00:04 +00:00
version
warnings
wasm Stabilize WebAssembly multivalue, reference-types, and tail-call target features 2024-11-10 07:45:14 -08:00
wf Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
where-clauses On long E0277 primary span label, move it to a help 2024-11-02 03:08:04 +00:00
while
windows-subsystem rewrite test-harness to rmake 2024-07-02 11:37:59 -04: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
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
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-label-E0381-issue-129274.rs Deduplicate Spans in Uninitialized Check 2024-08-22 09:36:14 -07:00
duplicate-label-E0381-issue-129274.stderr Deduplicate Spans in Uninitialized Check 2024-08-22 09:36:14 -07:00
duplicate_entry_error.rs Always use a colon in //@ normalize-*: headers 2024-07-11 12:23:44 +10:00
duplicate_entry_error.stderr
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 Suggest fixing typos and let bindings at the same time 2024-11-02 14:40:37 -07:00
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 use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
explore-issue-38412.stderr use backticks instead of single quotes when reporting "use of unstable library feature" 2024-11-03 13:55:52 -08:00
ext-expand-inner-exprs.rs
ext-nonexistent.rs
ext-nonexistent.stderr
fact.rs
fail-simple.rs Tweak more warnings. 2024-10-28 14:20:28 +11:00
fail-simple.stderr Tweak more warnings. 2024-10-28 14:20:28 +11:00
filter-block-view-items.rs
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 stabilize -Znext-solver=coherence 2024-10-15 13:11:00 +02:00
impl-unused-tps.stderr stabilize -Znext-solver=coherence 2024-10-15 13:11:00 +02: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
inner-module.rs
inner-static-type-parameter.rs
inner-static-type-parameter.stderr
inner-static.rs
integral-indexing.rs
integral-indexing.stderr Trim output of E0277 in some cases 2024-11-02 03:08:04 +00:00
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 Update tests for hidden references to mutable static 2024-09-13 14:10:56 +03: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
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 Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
no-warn-on-field-replace-issue-34101.rs
no_crate_type.rs
no_crate_type.stderr
no_send-enum.rs
no_send-enum.stderr Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
no_send-rc.rs
no_send-rc.stderr
no_share-enum.rs
no_share-enum.stderr Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
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
non-copyable-void.stderr
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 Add --diagnostic-width to some tests failing after 1a0c502183 2024-11-06 20:02:42 +01:00
not-clone-closure.stderr Add --diagnostic-width to some tests failing after 1a0c502183 2024-11-06 20:02:42 +01:00
not-copy-closure.rs
not-copy-closure.stderr Suggest borrowing arguments in generic positions when trait bounds are satisfied 2024-11-13 20:29:40 -08:00
not-enough-arguments.rs
not-enough-arguments.stderr Use ordinal number in argument error 2024-07-14 13:50:09 +09:00
nul-characters.rs
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
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 add C-cmse-nonsecure-entry ABI 2024-09-21 13:04:14 +02: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
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 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
simd-abi-checks-empty-list.rs ABI checks: add support for tier2 arches 2024-11-12 22:34:31 +01:00
simd-abi-checks-empty-list.stderr ABI checks: add support for tier2 arches 2024-11-12 22:34:31 +01:00
simd-abi-checks.rs ABI checks: add support for tier2 arches 2024-11-12 22:34:31 +01:00
simd-abi-checks.stderr ABI checks: add support for tier2 arches 2024-11-12 22:34:31 +01:00
sized-borrowed-pointer.rs
sized-cycle-note.rs
sized-cycle-note.stderr
sized-owned-pointer.rs
sse-abi-checks.rs ABI checks: add support for tier2 arches 2024-11-12 22:34:31 +01:00
sse-abi-checks.stderr ABI checks: add support for tier2 arches 2024-11-12 22:34:31 +01:00
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 Tweak more warnings. 2024-10-28 14:20:28 +11:00
underscore-ident-matcher.stderr Tweak more warnings. 2024-10-28 14:20:28 +11:00
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
unknown-language-item.stderr
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
usize-generic-argument-parent.rs
usize-generic-argument-parent.stderr
utf8-bom.rs Annotate input reference tests 2024-10-30 16:47:47 -07:00
utf8_idents.rs
wait-forked-but-failed-child.rs
walk-struct-literal-with.rs
walk-struct-literal-with.stderr
weak-new-uninhabited-issue-48493.rs
weird-exit-code.rs
weird-exprs.rs
write-fmt-errors.rs
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>.