rust/tests/ui
Matthias Krüger 0470728e94
Rollup merge of #132084 - compiler-errors:param-env-with-err, r=lcnr,estebank
Consider param-env candidates even if they have errors

I added this logic in https://github.com/rust-lang/rust/pull/106309, but frankly I don't know why -- the logic was a very large hammer. It seems like recent changes to error tainting has made that no longer necessary.

Ideally we'd rework the way we handle error reporting in all of candidate assembly to be a bit more responsible; we're just suppressing candidates all willy-nilly and it leads to mysterious *other* errors cropping up, like the one that #132082 originally wanted to fix.

**N.B.** This has the side-effect of turning a failed resolution like `where Missing: Sized` into a trivial where clause that matches all types, but also I don't think it really matters?

I'm putting this up as an alternative to #132082, since that PR doesn't address the case when one desugars the APIT into a regular type param.

r? lcnr vibeck
2024-10-24 10:35:40 +02:00
..
abi Rollup merge of #130225 - adetaylor:rename-old-receiver, r=wesleywiser 2024-10-24 14:19:53 +11:00
alloc-error
allocator
annotate-snippet
anon-params
argfile
argument-suggestions Added more scenarios where commas need to be removed 2024-10-20 17:14:53 +08:00
array-slice-vec
asm
associated-consts
associated-inherent-types
associated-item
associated-type-bounds
associated-types Stop inverting expectation in normalization errors 2024-10-16 13:44:56 -04:00
async-await Consider param-env candidates even if they have errors 2024-10-24 01:48:44 +00:00
attributes misapplied optimize attribute throws a compilation error (#128488) 2024-10-20 08:34:15 -06:00
auto-traits
autodiff
autoref-autoderef
auxiliary
backtrace Emscripten: Xfail backtrace ui tests 2024-10-16 12:22:14 +02:00
bench
binding
binop
blind
block-result
borrowck
box
btreemap
builtin-superkinds
c-variadic
cast elaborate why dropping principal in *dyn casts is non-trivial 2024-10-20 17:54:04 +02:00
cfg Handle gracefully true/false in cfg(target(..)) compact 2024-10-16 09:41:49 +02:00
check-cfg
closure_context
closure-expected-type
closures
cmse-nonsecure
codegen move strict provenance lints to new feature gate, remove old feature gates 2024-10-21 15:22:17 +01:00
codemap_tests
coercion
coherence Rollup merge of #128391 - cafce25:issue-128390, r=lcnr 2024-10-17 12:07:19 +02:00
coinduction
command Fix must_use lint for command exec tests 2024-10-17 06:33:35 -07:00
compare-method
compiletest-self-test
conditional-compilation
confuse-field-and-method
const_prop
const-generics Rollup merge of #131697 - ShE3py:rt-arg-lifetimes, r=Amanieu 2024-10-21 20:32:01 -07:00
const-ptr
consts
coroutine Rollup merge of #131814 - Borgerr:misapplied-optimize-attribute, r=jieyouxu 2024-10-20 21:04:13 +02:00
coverage-attr
crate-loading
cross
cross-crate
custom_test_frameworks
cycle-trait
debuginfo
definition-reachable
delegation
dep-graph
deployment-target
deprecation
deref-patterns
derived-errors
derives
deriving
dest-prop
destructuring-assignment
diagnostic_namespace Stop inverting expectation in normalization errors 2024-10-16 13:44:56 -04:00
diagnostic-flags
diagnostic-width
did_you_mean
directory_ownership
disallowed-deconstructing
dollar-crate
drop
drop-bounds
dropck Rollup merge of #128391 - cafce25:issue-128390, r=lcnr 2024-10-17 12:07:19 +02:00
dst
duplicate
dyn-compatibility
dyn-drop
dyn-keyword
dyn-star
dynamically-sized-types
editions
empty
entry-point
enum
enum-discriminant
env-macro
error-codes Prevent overflowing enum cast from ICEing 2024-10-19 09:44:37 +00:00
error-emitter
errors Rollup merge of #128391 - cafce25:issue-128390, r=lcnr 2024-10-17 12:07:19 +02:00
explicit
explicit-tail-calls
expr
extern
extern-flag
feature-gates Auto merge of #131321 - RalfJung:feature-activation, r=nnethercote 2024-10-22 11:02:35 +00:00
ffi-attrs
float
fmt Rollup merge of #131697 - ShE3py:rt-arg-lifetimes, r=Amanieu 2024-10-21 20:32:01 -07:00
fn
fn-main
for
for-loop-while
foreign
fuel
fully-qualified-type
function-pointer
functional-struct-update
functions-closures
generic-associated-types
generic-const-items
generics
half-open-range-patterns
hashmap
hello_world
higher-ranked Bless tests 2024-10-15 20:42:17 -04:00
hygiene
illegal-sized-bound
impl-header-lifetime-elision
impl-trait Rollup merge of #131795 - compiler-errors:expectation, r=Nadrieril 2024-10-19 22:00:57 +02:00
implied-bounds
imports
include-macros
incoherent-inherent-impls
indexing
inference
infinite
inherent-impls-overlap-check
inline-const
instrument-coverage
instrument-xray
interior-mutability
internal
internal-lints
intrinsics
invalid
invalid-compile-flags rust_for_linux: -Zregparm=<N> commandline flag for X86 (#116972) 2024-10-18 00:29:31 +07:00
invalid-module-declaration
invalid-self-argument
io-checks
issues Rollup merge of #131795 - compiler-errors:expectation, r=Nadrieril 2024-10-19 22:00:57 +02:00
iterators
json
keyword
kindck
label
lang-items
late-bound-lifetimes
layout compiler: Reject impossible reprs during enum layout 2024-10-20 02:12:58 -07:00
lazy-type-alias
lazy-type-alias-impl-trait
let-else
lexer
lifetimes
limits
linkage-attr
lint Rollup merge of #129248 - compiler-errors:raw-ref-deref, r=nnethercote 2024-10-24 10:35:39 +02:00
liveness
loops
lowering
lto
lub-glb
macro_backtrace
macros "innermost", "outermost", "leftmost", and "rightmost" don't need hyphens 2024-10-23 02:45:24 -07:00
malformed
manual
marker_trait_attr
match
meta
methods
mir move strict provenance lints to new feature gate, remove old feature gates 2024-10-21 15:22:17 +01:00
mir-dataflow
mismatched_types
missing
missing_non_modrs_mod
missing-trait-bounds
modules
modules_and_files_visibility
moves
mut
namespace
native-library-link-flags
never_type
nll
no_std
non_modrs_mods
non_modrs_mods_and_inline_mods
not-panic
numbers-arithmetic
numeric
object-lifetime
obsolete-in-place
offset-of
on-unimplemented
operator-recovery
or-patterns
overloaded
packed
panic-handler
panic-runtime
panics
parallel-rustc
parser
patchable-function-entry
pattern Rollup merge of #131381 - Nadrieril:min-match-ergonomics, r=pnkfelix 2024-10-16 19:18:30 +02:00
pin-macro
polymorphization
precondition-checks Warn on redundant --cfg directive when revisions are used 2024-10-19 12:40:12 +00:00
print_type_sizes
privacy Rename Receiver -> LegacyReceiver 2024-10-22 12:55:16 +00:00
proc-macro
process
process-termination
ptr_ops
pub
qualified
query-system
range Fix #131471, range misleading field access 2024-10-18 17:27:28 +02:00
raw-ref-op
reachable
recursion
recursion_limit
regions
repeat-expr
repr
reserved
resolve
return
rfcs Move tests 2024-10-22 00:03:09 +00:00
rmeta
runtime
rust-2018
rust-2021
rust-2024
rustc-env
rustdoc
sanitizer Warn on redundant --cfg directive when revisions are used 2024-10-19 12:40:12 +00:00
self
sepcomp
shadowed
shell-argfiles
simd
single-use-lifetime
sized
span
specialization
stability-attribute
stable-mir-print
stack-protector
static
statics
stats Represent TraitBoundModifiers as distinct parts in HIR 2024-10-22 19:48:44 +00:00
std
stdlib-unit-tests
str
structs
structs-enums move strict provenance lints to new feature gate, remove old feature gates 2024-10-21 15:22:17 +01:00
suggestions Rollup merge of #131925 - clubby789:redundant-revision-cfg, r=jieyouxu 2024-10-19 22:00:59 +02:00
svh
symbol-mangling-version
symbol-names
sync
target-feature
test-attrs
thir-print
thread-local
threads-sendsync
tool-attributes
track-diagnostics
trait-bounds
traits Rollup merge of #132084 - compiler-errors:param-env-with-err, r=lcnr,estebank 2024-10-24 10:35:40 +02:00
transmutability Fix transmute goal 2024-10-19 18:07:35 +00:00
transmute
treat-err-as-bug
trivial-bounds
try-block Stop inverting expectation in normalization errors 2024-10-16 13:44:56 -04:00
try-trait
tuple
type Rollup merge of #128391 - cafce25:issue-128390, r=lcnr 2024-10-17 12:07:19 +02:00
type-alias
type-alias-enum-variants
type-alias-impl-trait Rollup merge of #131795 - compiler-errors:expectation, r=Nadrieril 2024-10-19 22:00:57 +02:00
type-inference
typeck Rollup merge of #128391 - cafce25:issue-128390, r=lcnr 2024-10-17 12:07:19 +02:00
typeof
ufcs
unboxed-closures
underscore-imports
underscore-lifetime
uniform-paths
uninhabited
union
unknown-unstable-lints
unop
unpretty Print safety correctly in extern static items 2024-10-24 00:41:27 +00:00
unresolved
unsafe
unsized
unsized-locals
unused-crate-deps
unwind-abis
use
variance
variants
version
warnings
wasm
wf
where-clauses
while
windows-subsystem
zero-sized
.gitattributes
alias-uninit-value.rs
allow-non-lint-warnings.rs
anonymous-higher-ranked-lifetime.rs
anonymous-higher-ranked-lifetime.stderr
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
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
augmented-assignments.stderr
auto-instantiate.rs
auto-ref-slice-plus-ref.rs
auto-ref-slice-plus-ref.stderr
autoderef-full-lval.rs
autoderef-full-lval.stderr
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
duplicate_entry_error.stderr
duplicate-label-E0381-issue-129274.rs
duplicate-label-E0381-issue-129274.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
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
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
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
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
method-output-diff-issue-127263.rs
method-output-diff-issue-127263.stderr
minus-string.rs
minus-string.stderr
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
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_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
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
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
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_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
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
print-calling-conventions.stdout
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
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
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_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
unknown-language-item.stderr
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
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
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>.