rust/tests/ui
Matthias Krüger 9ec287dec2
Rollup merge of #120584 - compiler-errors:u, r=lcnr
For a rigid projection, recursively look at the self type's item bounds to fix the `associated_type_bounds` feature

Given a deeply nested rigid projection like `<<<T as Trait1>::Assoc1 as Trait2>::Assoc2 as Trait3>::Assoc3`, this PR adjusts both trait solvers to look at the item bounds for all of `Assoc3`, `Assoc2`, and `Assoc1` in order to satisfy a goal. We do this because the item bounds for projections may contain relevant bounds for *other* nested projections when the `associated_type_bounds` (ATB) feature is enabled. For example:

```rust
#![feature(associated_type_bounds)]

trait Trait1 {
    type Assoc1: Trait2<Assoc2: Foo>;
    // Item bounds for `Assoc1` are:
    // `<Self as Trait1>::Assoc1: Trait2`
    // `<<Self as Trait1>::Assoc1 as Trait2>::Assoc2: Foo`
}

trait Trait2 {
    type Assoc2;
}

trait Foo {}

fn hello<T: Trait1>(x: <<T as Trait1>::Assoc1 as Trait2>::Assoc2) {
    fn is_foo(_: impl Foo) {}
    is_foo(x);
    // Currently fails with:
    // ERROR the trait bound `<<Self as Trait1>::Assoc1 as Trait2>::Assoc2: Foo` is not satisfied
}
```

This has been a long-standing place of brokenness for ATBs, and is also part of the reason why ATBs currently desugar so differently in various positions (i.e. sometimes desugaring to param-env bounds, sometimes desugaring to RPITs, etc). For example, in RPIT and TAIT position, `impl Foo<Bar: Baz>` currently desugars to `impl Foo<Bar = impl Baz>` because we do not currently take advantage of these nested item bounds if we desugared them into a single set of item bounds on the opaque. This is obviously both strange and unnecessary if we just take advantage of these bounds as we should.

## Approach

This PR repeatedly peels off each projection of a given goal's self type and tries to match its item bounds against a goal, repeating with the self type of the projection. This is pretty straightforward to implement in the new solver, only requiring us to loop on the self type of a rigid projection to discover inner rigid projections, and we also need to introduce an extra probe so we can normalize them.

In the old solver, we can do essentially the same thing, however we rely on the fact that projections *should* be normalized already. This is obviously not always the case -- however, in the case that they are not fully normalized, such as a projection which has both infer vars and, we bail out with ambiguity if we hit an infer var for the self type.

## Caveats

⚠️ In the old solver, this has the side-effect of actually stalling some higher-ranked trait goals of the form `for<'a> <?0 as Tr<'a>>: Tr2`. Because we stall them, they no longer are eagerly treated as error -- this cause some existing `known-bug` tests to go from fail -> pass.

I'm pretty unconvinced that this is a problem since we make code that we expect to pass in the *new* solver also pass in the *old* solver, though this obviously doesn't solve the *full* problem.

## And then also...

We also adjust the desugaring of ATB to always desugar to a regular associated bound, rather than sometimes to an impl Trait **except** for when the ATB is present in a `dyn Trait`. We need to lower `dyn Trait<Assoc: Bar>` to `dyn Trait<Assoc = impl Bar>` because object types need all of their associated types specified.

I would also be in favor of splitting out the ATB feature and/or removing support for object types in order to stabilize just the set of positions for which the ATB feature is consistent (i.e. always elaborates to a bound).
2024-02-10 00:58:36 +01:00
..
abi
alloc-error
allocator
annotate-snippet
anon-params Update tests 2024-02-07 10:42:01 +08:00
argument-suggestions
array-slice-vec
asm Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
associated-consts Auto merge of #120558 - oli-obk:missing_impl_item_ice, r=estebank 2024-02-08 05:01:09 +00:00
associated-inherent-types
associated-item
associated-type-bounds Add tests for untested capabilities 2024-02-09 00:13:52 +00:00
associated-types For a rigid projection, recursively look at the self type's item bounds 2024-02-09 00:13:51 +00:00
async-await Rollup merge of #120584 - compiler-errors:u, r=lcnr 2024-02-10 00:58:36 +01:00
attributes
auto-traits Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
autoref-autoderef
auxiliary
bench
binding Rollup merge of #120479 - estebank:issue-61788, r=wesleywiser 2024-02-07 18:24:43 +01:00
binop Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
blind
block-result
borrowck
box
btreemap
builtin-superkinds Update tests 2024-02-07 10:42:01 +08:00
c-variadic
cast Emit more specific diagnostics when enums fail to cast with as 2024-02-09 09:19:44 +05:30
cfg
check-cfg Rollup merge of #120435 - chenyukang:yukang-fix-120427-cfg-name, r=Urgau,Nilstrieb 2024-02-06 22:45:41 +01:00
closure_context
closure-expected-type
closures Rollup merge of #120775 - Nadrieril:more-min_exh_pats, r=compiler-errors 2024-02-08 20:34:59 +01:00
cmse-nonsecure Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
codegen
codemap_tests
coercion Update tests 2024-02-07 10:42:01 +08:00
coherence Auto merge of #120558 - oli-obk:missing_impl_item_ice, r=estebank 2024-02-08 05:01:09 +00:00
coinduction
command
compare-method
compiletest-self-test
conditional-compilation
confuse-field-and-method
const_prop
const-generics Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
const-ptr
consts Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
coroutine Record coroutine kind in generics 2024-02-07 16:18:31 +00:00
crate-loading
cross
cross-crate
custom_test_frameworks
cycle-trait
debuginfo
definition-reachable
delegation Update tests 2024-02-07 10:42:01 +08:00
dep-graph
deployment-target
deprecation
deref-patterns
derived-errors
derives Rollup merge of #120507 - estebank:issue-108428, r=davidtwco 2024-02-06 22:45:42 +01:00
deriving Update tests 2024-02-07 10:42:01 +08:00
dest-prop
destructuring-assignment
diagnostic_namespace
diagnostic-flags
diagnostic-width Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
did_you_mean
directory_ownership
disallowed-deconstructing
dollar-crate
drop Avoid ICE in drop recursion check in case of invalid drop impls 2024-02-08 17:33:04 +00:00
drop-bounds
dropck
dst
duplicate
dyn-drop
dyn-keyword Stop using hir_ty_to_ty in rustc_privacy 2024-02-07 14:59:26 +00:00
dyn-star
dynamically-sized-types Update tests 2024-02-07 10:42:01 +08:00
editions
empty
entry-point
enum Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
enum-discriminant
error-codes Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
error-emitter
errors
explicit Update tests 2024-02-07 10:42:01 +08:00
explicit-tail-calls Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
expr Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
extenv
extern Update tests 2024-02-07 10:42:01 +08:00
extern-flag resolve: Unload speculatively resolved crates before freezing cstore 2024-02-06 17:44:53 +03:00
feature-gates For a rigid projection, recursively look at the self type's item bounds 2024-02-09 00:13:51 +00:00
fmt
fn Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
for
for-loop-while
foreign
fully-qualified-type
function-pointer
functional-struct-update
functions-closures
generic-associated-types For a rigid projection, recursively look at the self type's item bounds 2024-02-09 00:13:51 +00:00
generic-const-items
generics Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
half-open-range-patterns Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
hashmap
hello_world
higher-ranked For a rigid projection, recursively look at the self type's item bounds 2024-02-09 00:13:51 +00:00
hygiene Bless/fix tests 2024-02-08 19:56:30 -05:00
illegal-sized-bound
impl-header-lifetime-elision
impl-trait Rollup merge of #113671 - oli-obk:normalize_weak_tys, r=petrochenkov 2024-02-09 14:41:48 +01:00
implied-bounds
imports
include-macros
incoherent-inherent-impls
indexing
inference
infinite Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
inherent-impls-overlap-check
inline-const
instrument-coverage
instrument-xray
interior-mutability
internal
internal-lints
intrinsics
invalid Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
invalid-compile-flags
invalid-module-declaration
invalid-self-argument
io-checks
issues Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
iterators
json
keyword
kindck Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
label
lang-items Rollup merge of #120556 - fmease:improve-unused-generic-param-diags, r=oli-obk 2024-02-04 19:42:12 +01:00
late-bound-lifetimes
layout
lazy-type-alias
lazy-type-alias-impl-trait
let-else
lexer
lifetimes Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
limits
linkage-attr
lint Rollup merge of #113671 - oli-obk:normalize_weak_tys, r=petrochenkov 2024-02-09 14:41:48 +01:00
liveness Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
loops Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
lowering
lto
lub-glb
macro_backtrace
macros Update tests 2024-02-07 10:42:01 +08:00
malformed
manual
marker_trait_attr Stop bailing out from compilation just because there were incoherent traits 2024-02-05 10:17:31 +00:00
match Rollup merge of #116284 - RalfJung:no-nan-match, r=cjgillot 2024-02-05 11:07:26 +01:00
meta
methods Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
mir Don't ice in validation when error body is created 2024-02-09 00:40:43 +00:00
mir-dataflow
mismatched_types Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
missing
missing_non_modrs_mod
missing-trait-bounds
modules
modules_and_files_visibility
moves Update tests 2024-02-07 10:42:01 +08:00
mut
namespace
native-library-link-flags
never_type
nll Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
no_std
non_modrs_mods
non_modrs_mods_and_inline_mods
not-panic
numbers-arithmetic
numeric
object-lifetime
object-safety Stop using hir_ty_to_ty in rustc_privacy 2024-02-07 14:59:26 +00:00
obsolete-in-place
offset-of
on-unimplemented
operator-recovery
or-patterns Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
overloaded Update tests 2024-02-07 10:42:01 +08:00
packed
panic-handler
panic-runtime
panics
parallel-rustc Add parallel rustc ui tests 2024-02-07 15:26:57 +08:00
parser Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
pattern Rollup merge of #120775 - Nadrieril:more-min_exh_pats, r=compiler-errors 2024-02-08 20:34:59 +01:00
pin-macro
polymorphization
precondition-checks Add new ui tests 2024-02-08 19:56:30 -05:00
print_type_sizes Update test output. 2024-02-07 16:01:58 +01:00
print-fuel
privacy Add some tests for associated type normalization edge cases 2024-02-08 12:28:35 +00:00
proc-macro Update tests 2024-02-07 10:42:01 +08:00
process
process-termination
ptr_ops
pub
qualified
query-system
range
raw-ref-op
reachable
recursion
recursion_limit
regions Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
repeat-expr
repr
reserved
resolve Update tests 2024-02-07 10:42:01 +08:00
return
rfcs Rollup merge of #120775 - Nadrieril:more-min_exh_pats, r=compiler-errors 2024-02-08 20:34:59 +01:00
rmeta
runtime
rust-2018 Update tests 2024-02-07 10:42:01 +08:00
rust-2021
rustdoc
sanitize
self
sepcomp
shadowed
shell-argfiles
simd
single-use-lifetime
sized Update tests 2024-02-07 10:42:01 +08:00
span Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
specialization Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
stability-attribute Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
stable-mir-print
stack-protector
static Taint borrowck results without running any borrowck if the MIR body was already tainted 2024-02-08 07:39:49 +00:00
statics Update tests 2024-02-07 10:42:01 +08:00
stats
std
stdlib-unit-tests Update tests 2024-02-07 10:42:01 +08:00
str
structs
structs-enums Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
suggestions Rollup merge of #113671 - oli-obk:normalize_weak_tys, r=petrochenkov 2024-02-09 14:41:48 +01:00
svh
symbol-mangling-version
symbol-names Bless tests, add comments 2024-02-06 02:22:58 +00:00
sync
target-feature
test-attrs
thir-print
thread-local
threads-sendsync Update tests 2024-02-07 10:42:01 +08:00
tool-attributes
track-diagnostics
trait-bounds
traits Rollup merge of #120836 - lcnr:param-env-hide-impl, r=BoxyUwU 2024-02-09 19:21:19 +01:00
transmutability
transmute
treat-err-as-bug
trivial-bounds
try-block
try-trait
tuple
type
type-alias
type-alias-enum-variants Stop using hir_ty_to_ty in rustc_privacy 2024-02-07 14:59:26 +00:00
type-alias-impl-trait Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
type-inference
typeck Stop bailing out from compilation just because there were incoherent traits 2024-02-05 10:17:31 +00:00
typeof Already poison the type_of result of the anon const used in the typeof expression 2024-02-08 07:32:30 +00:00
ufcs fix ui tests 2024-02-04 11:34:10 +08:00
unboxed-closures Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
underscore-imports
underscore-lifetime Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
uniform-paths
uninhabited Test min_exhaustive_patterns in more cases 2024-02-08 11:48:38 +01:00
union Rollup merge of #116284 - RalfJung:no-nan-match, r=cjgillot 2024-02-05 11:07:26 +01:00
unknown-unstable-lints
unpretty
unresolved
unsafe
unsized
unsized-locals
unused-crate-deps
unwind-abis
use
variance
variants
wasm
wf improve pretty printing for trait objects 2024-02-07 16:09:46 +01:00
where-clauses Update tests 2024-02-07 10:42:01 +08:00
while
xcrate
zero-sized
.gitattributes
alias-uninit-value.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
backtrace-apple-no-dsymutil.rs
backtrace.rs
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
by-move-pattern-binding.rs
by-move-pattern-binding.stderr
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
check-static-immutable-mut-slices.rs
check-static-immutable-mut-slices.stderr
check-static-recursion-foreign.rs
check-static-values-constraints.rs
check-static-values-constraints.stderr
class-cast-to-trait.rs Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
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
commandline-argfile-badutf8.args
commandline-argfile-badutf8.rs
commandline-argfile-badutf8.stderr
commandline-argfile-missing.rs
commandline-argfile-missing.stderr
commandline-argfile.args
commandline-argfile.rs
compile_error_macro.rs
compile_error_macro.stderr
complex.rs
conflicting-repr-hints.rs
conflicting-repr-hints.stderr
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 Update tests 2024-02-07 10:42:01 +08:00
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
does-nothing.rs
does-nothing.stderr
dont-suggest-private-trait-method.rs
dont-suggest-private-trait-method.stderr
double-ref.rs
double-type-import.rs
double-type-import.stderr
dupe-first-attr.rs
duplicate_entry_error.rs
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_global_asm.rs
empty-allocation-non-null.rs
empty-allocation-rvalue-non-null.rs
empty-type-parameter-list.rs Update tests 2024-02-07 10:42:01 +08:00
empty-type-parameter-list.stderr Update tests 2024-02-07 10:42:01 +08:00
env-args-reverse-iterator.rs
env-funky-keys.rs
env-null-vars.rs
env-vars.rs
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
exec-env.rs
explain.rs
explain.stdout
explicit-i-suffix.rs
explore-issue-38412.rs
explore-issue-38412.stderr
expr-block-fn.rs
expr-block-generic.rs
expr-block.rs
expr-copy.rs
expr-if-generic.rs
expr-if-panic-all.rs
expr-scope.rs
ext-expand-inner-exprs.rs
ext-nonexistent.rs
ext-nonexistent.stderr
extern-mod-syntax.rs
extoption_env-no-args.rs
extoption_env-no-args.stderr
extoption_env-not-defined.rs
extoption_env-not-string-literal.rs
extoption_env-not-string-literal.stderr
extoption_env-too-many-args.rs
extoption_env-too-many-args.stderr
fact.rs
fail-simple.rs
fail-simple.stderr
ffi_const2.rs
ffi_const2.stderr
ffi_const.rs
ffi_const.stderr
ffi_pure.rs
ffi_pure.stderr
filter-block-view-items.rs
fn-in-pat.rs
fn-in-pat.stderr
foreign-fn-return-lifetime.rs
foreign-fn-return-lifetime.stderr
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
impossible_range.fixed
impossible_range.rs
impossible_range.stderr
inc-range-pat.rs
infer-fn-tail-expr.rs
inherit-env.rs
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 Rollup merge of #119939 - clubby789:static-const-generic-note, r=compiler-errors 2024-02-06 22:45:39 +01:00
inner-static.rs
integral-indexing.rs
integral-indexing.stderr
integral-variable-unification-error.rs
integral-variable-unification-error.stderr
intrinsics-always-extern.rs
intrinsics-always-extern.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
lambda-infer-unresolved.rs
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
lint-group-denied-lint-allowed.rs
lint-group-forbid-always-trumps-cli.rs
lint-group-forbid-always-trumps-cli.stderr
lint-unknown-lints-at-crate-level.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
macro-quote-test.rs
main-wrong-location.rs
main-wrong-location.stderr
main-wrong-type.rs
main-wrong-type.stderr
max-min-classes.rs
maximal_mir_to_hir_coverage.rs
maybe-bounds.rs
maybe-bounds.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
module-macro_use-arguments.rs
module-macro_use-arguments.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
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-patterns-in-args-2.rs
no-patterns-in-args-2.stderr
no-patterns-in-args-macro.rs
no-patterns-in-args-macro.stderr
no-patterns-in-args.rs
no-patterns-in-args.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-fuel-0.rs
optimization-fuel-0.stderr
optimization-fuel-1.rs
optimization-fuel-1.stderr
optimization-remark.rs
order-dependent-cast-inference.rs
order-dependent-cast-inference.stderr
orphan-check-diagnostics.rs
orphan-check-diagnostics.stderr
osx-frameworks.rs
osx-frameworks.stderr
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-stdout-eprint-stderr.rs
project-cache-issue-31849.rs
ptr-coercion-rpass.rs
ptr-coercion.rs
ptr-coercion.stderr
query-visibility.rs
range_inclusive.rs
raw-str.rs
realloc-16687.rs
reassign-ref-mut.rs
reassign-ref-mut.stderr
reexport-test-harness-main.rs
reify-intrinsic.rs
reify-intrinsic.stderr
removing-extern-crate.fixed
removing-extern-crate.rs
removing-extern-crate.stderr
resource-assign-is-not-copy.rs
resource-destruct.rs
ret-bang.rs
ret-non-nil.rs
ret-non-nil.stderr
return-disjoint-regions.rs
return-disjoint-regions.stderr
return-nil.rs
rustc-error.rs
rustc-error.stderr
rustc-rust-log.rs
seq-args.rs
seq-args.stderr
shadow-bool.rs
shadowed-use-visibility.rs
short-error-format.rs
short-error-format.stderr
simple_global_asm.rs
sized-borrowed-pointer.rs
sized-cycle-note.rs
sized-cycle-note.stderr
sized-owned-pointer.rs
sse2.rs
stable-addr-of.rs
std-backtrace.rs
std-uncopyable-atomics.rs
std-uncopyable-atomics.stderr
stdio-is-blocking.rs
stmt_expr_attrs_no_feature.rs
stmt_expr_attrs_no_feature.stderr
string-box-error.rs
struct-ctor-mangling.rs
suggest-null-ptr.fixed
suggest-null-ptr.rs
suggest-null-ptr.stderr
super-at-top-level.rs
super-at-top-level.stderr
super-fast-paren-parsing.rs
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 Emit more specific diagnostics when enums fail to cast with as 2024-02-09 09:19:44 +05:30
tail-call-arg-leak.rs
tail-cps.rs
tail-typeck.rs
tail-typeck.stderr
tool_lints_2018_preview.rs
tool_lints-fail.rs
tool_lints-fail.stderr
tool_lints-rpass.rs
tool_lints.rs
tool_lints.stderr
trailing-comma.rs
trait-impl-bound-suggestions.fixed
trait-impl-bound-suggestions.rs
trait-impl-bound-suggestions.stderr
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 Update tests 2024-02-07 10:42:01 +08:00
trivial_casts-rpass.stderr Update tests 2024-02-07 10:42:01 +08:00
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-lint-tool-name.rs
unknown-lint-tool-name.stderr
unknown-llvm-arg.rs
unknown-llvm-arg.stderr
unknown-tool-name.rs
unknown-tool-name.stderr
unnamed_argument_mode.rs
unop-move-semantics.rs
unop-move-semantics.stderr
unop-neg-bool.rs
unop-neg-bool.stderr
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
windows-subsystem-invalid.rs
windows-subsystem-invalid.stderr
write-fmt-errors.rs
writing-to-immutable-vec.rs
writing-to-immutable-vec.stderr
wrong-hashset-issue-42918.rs