rust/tests/ui
bors ec2b311914 Auto merge of #116733 - compiler-errors:alias-liveness-but-this-time-sound, r=aliemjay
Consider alias bounds when computing liveness in NLL (but this time sound hopefully)

This is a revival of #116040, except removing the changes to opaque lifetime captures check to make sure that we're not triggering any unsoundness due to the lack of general existential regions and the currently-existing `ReErased` hack we use instead.

r? `@aliemjay` -- I appreciate you pointing out the unsoundenss in the previous iteration of this PR, and I'd like to hear that you're happy with this iteration of this PR before this goes back into FCP :>

Fixes #116794 as well

---

(mostly copied from #116040 and reworked slightly)

# Background

Right now, liveness analysis in NLL is a bit simplistic. It simply walks through all of the regions of a type and marks them as being live at points. This is problematic in the case of aliases, since it requires that we mark **all** of the regions in their args[^1] as live, leading to bugs like #42940.

In reality, we may be able to deduce that fewer regions are allowed to be present in the projected type (or "hidden type" for opaques) via item bounds or where clauses, and therefore ideally, we should be able to soundly require fewer regions to be live in the alias.

For example:
```rust
trait Captures<'a> {}
impl<T> Captures<'_> for T {}

fn capture<'o>(_: &'o mut ()) -> impl Sized + Captures<'o> + 'static {}

fn test_two_mut(mut x: ()) {
    let _f1 = capture(&mut x);
    let _f2 = capture(&mut x);
    //~^ ERROR cannot borrow `x` as mutable more than once at a time
}
```

In the example above, we should be able to deduce from the `'static` bound on `capture`'s opaque that even though `'o` is a captured region, it *can never* show up in the opaque's hidden type, and can soundly be ignored for liveness purposes.

# The Fix

We apply a simple version of RFC 1214's `OutlivesProjectionEnv` and `OutlivesProjectionTraitDef` rules to NLL's `make_all_regions_live` computation.

Specifically, when we encounter an alias type, we:
1. Look for a unique outlives bound in the param-env or item bounds for that alias. If there is more than one unique region, bail, unless any of the outlives bound's regions is `'static`, and in that case, prefer `'static`. If we find such a unique region, we can mark that outlives region as live and skip walking through the args of the opaque.
2. Otherwise, walk through the alias's args recursively, as we do today.

## Limitation: Multiple choices

This approach has some limitations. Firstly, since liveness doesn't use the same type-test logic as outlives bounds do, we can't really try several options when we're faced with a choice.

If we encounter two unique outlives regions in the param-env or bounds, we simply fall back to walking the opaque via its args. I expect this to be mostly mitigated by the special treatment of `'static`, and can be fixed in a forwards-compatible by a more sophisticated analysis in the future.

## Limitation: Opaque hidden types

Secondly, we do not employ any of these rules when considering whether the regions captured by a hidden type are valid. That causes this code (cc #42940) to fail:

```rust
trait Captures<'a> {}
impl<T> Captures<'_> for T {}

fn a() -> impl Sized + 'static {
    b(&vec![])
}

fn b<'o>(_: &'o Vec<i32>) -> impl Sized + Captures<'o> + 'static {}
```

We need to have existential regions to avoid [unsoundness](https://github.com/rust-lang/rust/pull/116040#issuecomment-1751628189) when an opaque captures a region which is not represented in its own substs but which outlives a region that does.

## Read more

Context: https://github.com/rust-lang/rust/pull/115822#issuecomment-1731153952 (for the liveness case)
More context: https://github.com/rust-lang/rust/issues/42940#issuecomment-455198309 (for the opaque capture case, which this does not fix)

[^1]: except for bivariant region args in opaques, which will become less relevant when we move onto edition 2024 capture semantics for opaques.
2023-10-29 18:42:02 +00:00
..
abi tests/ui/abi/compatibility: Set min-llvm-version to 17 for LoongArch64 2023-10-24 11:43:46 +08:00
alloc-error
allocator
annotate-snippet
anon-params
argument-suggestions
array-slice-vec
asm Fix duplicate labels emitted in render_multispan_macro_backtrace() 2023-10-19 08:03:40 +05:30
associated-consts Work around the fact that check_mod_type_wf may spuriously return ErrorGuaranteed, even if that error is only emitted by check_modwitem_types 2023-10-25 12:04:54 +00:00
associated-inherent-types Work around the fact that check_mod_type_wf may spuriously return ErrorGuaranteed, even if that error is only emitted by check_modwitem_types 2023-10-25 12:04:54 +00:00
associated-item Unify suggestion wording 2023-10-17 17:33:55 +00:00
associated-type-bounds Restrict param constraint suggestion 2023-10-26 18:33:03 +00:00
associated-types Work around the fact that check_mod_type_wf may spuriously return ErrorGuaranteed, even if that error is only emitted by check_modwitem_types 2023-10-25 12:04:54 +00:00
async-await Rollup merge of #117175 - oli-obk:gen_fn_split, r=compiler-errors 2023-10-25 23:37:11 +02:00
attributes Tweak suggestion spans for invalid crate-level inner attribute 2023-10-26 18:35:09 +00:00
auto-traits
autoref-autoderef
auxiliary
bench
binding Add diverging match guard test. 2023-10-24 15:30:17 +00:00
binop
blind
block-result
borrowck Auto merge of #116733 - compiler-errors:alias-liveness-but-this-time-sound, r=aliemjay 2023-10-29 18:42:02 +00:00
box
btreemap
builtin-superkinds
c-variadic
cast Never consider raw pointer casts to be trival 2023-10-25 23:15:18 +02:00
cfg
check-cfg Better guard against wrong input with check-cfg any() 2023-10-27 12:02:54 +02:00
closure_context
closure-expected-type
closures s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
cmse-nonsecure
codegen
codemap_tests
coercion
coherence Auto merge of #112875 - compiler-errors:negative-coherence-rework, r=lcnr 2023-10-26 10:57:21 +00:00
coinduction
command
compare-method
compiletest-self-test
conditional-compilation
confuse-field-and-method
const_prop
const-generics Rollup merge of #116401 - WaffleLapkin:vtablin''', r=oli-obk 2023-10-25 23:37:09 +02:00
const-ptr Stabilize [const_]pointer_byte_offsets 2023-10-25 22:35:12 +00:00
consts Auto merge of #116240 - dtolnay:constdiscriminant, r=thomcc 2023-10-28 19:38:15 +00:00
coroutine Fuse gen blocks 2023-10-27 15:20:44 +00:00
crate-loading
cross
cross-crate
custom_test_frameworks
cycle-trait
debuginfo
definition-reachable
dep-graph
deployment-target
deprecation Fix stable feature names in tests 2023-10-23 13:03:11 -07:00
deref-patterns
derived-errors
derives Tweak suggestion spans for invalid crate-level inner attribute 2023-10-26 18:35:09 +00:00
deriving
dest-prop
destructuring-assignment
diagnostic_namespace Fix a span for one of the test cases 2023-10-20 13:24:58 +02:00
diagnostic-flags
diagnostic-width
did_you_mean Auto merge of #115324 - francorbacho:master, r=davidtwco 2023-10-23 00:51:35 +00:00
directory_ownership
disallowed-deconstructing
dollar-crate
drop s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
drop-bounds
dropck
dst
duplicate
dyn-drop
dyn-keyword
dyn-star
dynamically-sized-types
editions
empty
entry-point
enum
enum-discriminant
error-codes Use PlaceMention for match scrutinees. 2023-10-24 15:30:17 +00:00
errors
explicit
explicit-tail-calls
expr When expecting closure argument but finding block provide suggestion 2023-10-23 20:41:15 +00:00
extenv
extern
extern-flag
feature-gates Auto merge of #116447 - oli-obk:gen_fn, r=compiler-errors 2023-10-29 00:03:52 +00:00
fmt
fn
for
for-loop-while
foreign
fully-qualified-type
function-pointer
functional-struct-update
functions-closures
generic-associated-types Work around the fact that check_mod_type_wf may spuriously return ErrorGuaranteed, even if that error is only emitted by check_modwitem_types 2023-10-25 12:04:54 +00:00
generic-const-items
generics
half-open-range-patterns
hashmap
hello_world
higher-ranked
hygiene Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
illegal-sized-bound
impl-header-lifetime-elision
impl-trait Auto merge of #116733 - compiler-errors:alias-liveness-but-this-time-sound, r=aliemjay 2023-10-29 18:42:02 +00:00
implied-bounds
imports Tweak suggestion spans for invalid crate-level inner attribute 2023-10-26 18:35:09 +00:00
include-macros
incoherent-inherent-impls
indexing
inference Avoid a track_errors by bubbling up most errors from check_well_formed 2023-10-20 08:46:27 +00:00
infinite Avoid a track_errors by bubbling up most errors from check_well_formed 2023-10-20 08:46:27 +00:00
inherent-impls-overlap-check
inline-const Make THIR unused_unsafe lint consistent with MIR 2023-10-25 10:10:13 +00:00
instrument-coverage coverage: UI test for unstable value -C instrument-coverage=branch 2023-10-25 11:36:45 +11:00
instrument-xray
interior-mutability
internal
internal-lints
intrinsics
invalid Move invalid-llvm-passes test to invalid-compile-flags folder 2023-10-20 14:59:26 +02:00
invalid-compile-flags Move invalid-llvm-passes test to invalid-compile-flags folder 2023-10-20 14:59:26 +02:00
invalid-module-declaration Mention the syntax for use on mod foo; if foo doesn't exist 2023-10-21 15:56:01 +00:00
invalid-self-argument
io-checks
issues Work around the fact that check_mod_type_wf may spuriously return ErrorGuaranteed, even if that error is only emitted by check_modwitem_types 2023-10-25 12:04:54 +00:00
iterators
json
keyword
kindck
label
lang-items Tweak wording of type errors involving type params 2023-10-18 23:53:18 +00:00
late-bound-lifetimes
layout fix failure to detect a too-big-type after adding padding 2023-10-27 18:07:53 +02:00
lazy-type-alias
lazy-type-alias-impl-trait s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
let-else
lexer
lifetimes Quietly fail if an error has already occurred 2023-10-26 11:14:53 +00:00
limits
linkage-attr
lint use visibility to check unused imports and delete some stmts 2023-10-22 21:27:46 +08:00
liveness s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
loops
lowering
lto
lub-glb
macro_backtrace
macros Augment stringify.rs test some more. 2023-10-24 16:00:45 +11:00
malformed Account for type param from other item in note_and_explain 2023-10-27 16:24:01 +00:00
manual
marker_trait_attr
match
meta
methods Unify suggestion wording 2023-10-17 17:33:55 +00:00
mir Lint overlapping ranges as a separate pass 2023-10-27 05:16:26 +02:00
mir-dataflow
mismatched_types Fix unwrap suggestion for async fn 2023-10-25 02:29:51 +00:00
missing
missing_non_modrs_mod Mention the syntax for use on mod foo; if foo doesn't exist 2023-10-21 15:56:01 +00:00
missing-trait-bounds
modules Mention the syntax for use on mod foo; if foo doesn't exist 2023-10-21 15:56:01 +00:00
modules_and_files_visibility
moves
mut
namespace
native-library-link-flags
never_type
nll Auto merge of #116300 - cjgillot:split-move, r=petrochenkov 2023-10-24 00:25:32 +00:00
non_modrs_mods
non_modrs_mods_and_inline_mods
not-panic
numbers-arithmetic
numeric
object-lifetime
object-safety Suggest relaxing implicit type Assoc: Sized; bound 2023-10-19 00:07:16 +00:00
obsolete-in-place
offset-of
on-unimplemented
operator-recovery
or-patterns
overloaded
packed s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
packed-struct
panic-handler
panic-runtime
panics
parser Auto merge of #116889 - MU001999:master, r=petrochenkov 2023-10-29 16:46:47 +00:00
pattern Lint overlapping ranges as a separate pass 2023-10-27 05:16:26 +02:00
pin-macro
polymorphization Rename lots of files that had generator in their name 2023-10-20 21:14:02 +00:00
print_type_sizes Rename lots of files that had generator in their name 2023-10-20 21:14:02 +00:00
print-fuel
privacy When encountering sealed traits, point types that implement it 2023-10-27 17:40:52 +00:00
proc-macro Work around the fact that check_mod_type_wf may spuriously return ErrorGuaranteed, even if that error is only emitted by check_modwitem_types 2023-10-25 12:04:54 +00:00
process
process-termination
ptr_ops
pub
qualified
query-system
range
raw-ref-op
reachable Update since stability attributes in tests 2023-10-23 13:04:47 -07:00
recursion
recursion_limit
regions s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
repeat-expr
repr Update since stability attributes in tests 2023-10-23 13:04:47 -07:00
reserved
resolve
return Tweak wording of type errors involving type params 2023-10-18 23:53:18 +00:00
rfcs Auto merge of #103208 - cjgillot:match-fake-read, r=oli-obk,RalfJung 2023-10-27 18:51:43 +00:00
rmeta
runtime
rust-2018 Fix duplicate labels emitted in render_multispan_macro_backtrace() 2023-10-19 08:03:40 +05:30
rust-2021
rustdoc
sanitize Rename lots of files that had generator in their name 2023-10-20 21:14:02 +00:00
self Avoid a track_errors by bubbling up most errors from check_well_formed 2023-10-20 08:46:27 +00:00
sepcomp
shadowed
simd Work around the fact that check_mod_type_wf may spuriously return ErrorGuaranteed, even if that error is only emitted by check_modwitem_types 2023-10-25 12:04:54 +00:00
single-use-lifetime
sized
span Tweak suggestion spans for invalid crate-level inner attribute 2023-10-26 18:35:09 +00:00
specialization Work around the fact that check_mod_type_wf may spuriously return ErrorGuaranteed, even if that error is only emitted by check_modwitem_types 2023-10-25 12:04:54 +00:00
stability-attribute Update stability attribute sanity UI test to delete superfluous errors 2023-10-24 15:50:24 -07:00
stack-protector
static
statics
stats
std
stdlib-unit-tests
str
structs Unify suggestion wording 2023-10-17 17:33:55 +00:00
structs-enums
suggestions Auto merge of #116300 - cjgillot:split-move, r=petrochenkov 2023-10-24 00:25:32 +00:00
svh
symbol-names
sync
target-feature tests: Add features-gate for LoongArch 2023-10-24 09:36:47 +08:00
test-attrs
thir-print
thread-local
threads-sendsync s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
tool-attributes
track-diagnostics
trait-bounds
traits Rollup merge of #116553 - gurry:116464-assoc-type-invalid-suggestion, r=compiler-errors 2023-10-25 23:37:09 +02:00
transmutability
transmute
treat-err-as-bug
trivial-bounds
try-block
try-trait
tuple
type Invalid ? suggestion on mismatched Ok(T) 2023-10-20 10:13:19 +01:00
type-alias
type-alias-enum-variants Tweak wording of type errors involving type params 2023-10-18 23:53:18 +00:00
type-alias-impl-trait Auto merge of #116751 - Nadrieril:lint-overlap-per-column, r=davidtwco 2023-10-27 14:10:42 +00:00
type-inference
typeck Rollup merge of #116841 - chenyukang:yukang-suggest-unwrap-expect, r=b-naber 2023-10-24 19:29:55 +02:00
typeof
ufcs Work around the fact that check_mod_type_wf may spuriously return ErrorGuaranteed, even if that error is only emitted by check_modwitem_types 2023-10-25 12:04:54 +00:00
unboxed-closures s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
underscore-imports
underscore-lifetime
uniform-paths
uninhabited Add diverging match guard test. 2023-10-24 15:30:17 +00:00
union Work around the fact that check_mod_type_wf may spuriously return ErrorGuaranteed, even if that error is only emitted by check_modwitem_types 2023-10-25 12:04:54 +00:00
unknown-unstable-lints
unpretty
unresolved on unresolved import disambiguate suggested path if it would collide 2023-10-21 15:40:32 +02:00
unsafe Make THIR unused_unsafe lint consistent with MIR 2023-10-25 10:10:13 +00:00
unsized Work around the fact that check_mod_type_wf may spuriously return ErrorGuaranteed, even if that error is only emitted by check_modwitem_types 2023-10-25 12:04:54 +00:00
unsized-locals
unused-crate-deps
unwind-abis
use
variance
variants
wasm
wf Work around the fact that check_mod_type_wf may spuriously return ErrorGuaranteed, even if that error is only emitted by check_modwitem_types 2023-10-25 12:04:54 +00:00
where-clauses
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
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
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
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
ffi_returns_twice.rs
ffi_returns_twice.stderr
filter-block-view-items.rs
fn-in-pat.rs
fn-in-pat.stderr
foreign-fn-return-lifetime.fixed
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 Merge impl_wf_inference into coherence checking 2023-10-24 17:01:25 +00:00
impl-unused-tps.stderr Merge impl_wf_inference into coherence checking 2023-10-24 17:01:25 +00:00
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
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 suggest unwrap/expect for let binding type mismatch 2023-10-25 00:32:58 +08:00
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
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
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 s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
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