rust/tests/ui/impl-trait
bors 75ee9ffd5e Auto merge of #145925 - lcnr:revealing-use-closures-2, r=BoxyUwU
`-Znext-solver`: support non-defining uses in closures

Cleaned up version of rust-lang/rust#139587, finishing the implementation of https://github.com/rust-lang/types-team/issues/129. This does not affect stable. The reasoning for why this is the case is subtle however.

## What does it do

We split `do_mir_borrowck` into `borrowck_collect_region_constraints` and `borrowck_check_region_constraints`, where `borrowck_collect_region_constraints` returns an enormous `CollectRegionConstraintsResult` struct which contains all the relevant data to actually handle opaque type uses and to check the region constraints later on.

`query mir_borrowck` now simply calls `BorrowCheckRootCtxt::do_mir_borrowck` which starts by iterating over all nested bodies of the current function - visiting nested bodies before their parents - and computing their `CollectRegionConstraintsResult`.

After we've collected all constraints it's time to actually compute the concrete types for the opaques defined by this function. With this PR we now compute the concrete types of opaques for each body before using them to check the non-defining uses of any of them.

After we've computed the concrete types by using all bodies, we use `apply_computed_concrete_opaque_types` for each body to constrain non-defining uses, before finally finishing with `borrowck_check_region_constraints`. We always visit nested bodies before their parents when doing this.

## `ClosureRegionRequirements`

As we only call `borrowck_collect_region_constraints` for nested bodies before type checking the parent, we can't simply use the final `ClosureRegionRequirements` of the nested body during MIR type check. We instead track that we need to apply these requirements in `deferred_closure_requirements`.

We now manually apply the final closure requirements to each body after handling opaque types.

This works, except that we may need the region constraints of nested bodies to successfully define an opaque type in the parent. This is handled by using a new `fn compute_closure_requirements_modulo_opaques` which duplicates region checking - while ignoring any errors - before we've added the constraints from `apply_computed_concrete_opaque_types`. This is necessary for a lot of async tests, as pretty much the entire function is inside of an async block while the opaque type gets defined in the parent.

As an performance optimization we only use `fn compute_closure_requirements_modulo_opaques` in case the nested body actually depends on any opaque types. Otherwise we eagerly call `borrowck_check_region_constraints` and apply the final closure region requirements right away.

## Impact on stable code

Handling the opaque type uses in the parent function now only uses the closure requirements *modulo opaques*, while it previously also considered member constraints from nested bodies. `External` regions are never valid choice regions. Also, member constraints will never constrain a member region if it is required to be outlived by an external region, as that fails the upper-bound check. 564ee21912/compiler/rustc_borrowck/src/region_infer/opaque_types/member_constraints.rs (L90-L96)

Member constraints therefore never add constraints for external regions :>

r? `@BoxyUwU`
2025-09-01 20:56:46 +00:00
..
alias-liveness Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
apit move (and remove) impl Trait tests 2025-05-09 02:35:18 +00:00
auto-trait-leakage Use tcx.short_string() in more diagnostics 2025-08-07 21:18:00 +00:00
auxiliary
diagnostics On E0277, point at type that doesn't implement bound 2025-08-22 17:55:15 +00:00
explicit-generic-args-with-impl-trait Revert suggestion verbosity change 2024-07-22 22:51:53 +00:00
in-bindings Add implicit sized bound to trait ascription types 2025-07-18 16:48:57 +00:00
in-ctfe [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
in-trait On E0277, point at type that doesn't implement bound 2025-08-22 17:55:15 +00:00
issues On E0277, point at type that doesn't implement bound 2025-08-22 17:55:15 +00:00
member-constraints handle opaque types before region inference 2025-08-20 11:04:38 +02:00
multiple-lifetimes Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
non-defining-uses use defining uses of all bodies to constrain non-defining uses 2025-09-01 22:08:03 +02:00
precise-capturing Properly recover from parenthesized use-bounds (precise capturing) 2025-08-16 01:21:35 +02:00
rpit add TypingMode::Borrowck 2025-04-03 11:13:10 +02:00
transmute Separate transmute checking from typeck. 2025-08-22 20:10:27 +00:00
associated-impl-trait-type-generic-trait.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
associated-impl-trait-type-issue-114325.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
associated-impl-trait-type-trivial.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
associated-impl-trait-type.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
associated-type-cycle.rs Fix stack overflow with recursive associated types 2024-03-12 06:03:43 +00:00
associated-type-cycle.stderr Fix stack overflow with recursive associated types 2024-03-12 06:03:43 +00:00
associated-type-undefine.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
associated-type-undefine.stderr Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
async_scope_creep.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
auto-trait-selection-freeze.next.stderr support non-defining uses in HIR typeck 2025-08-25 14:20:18 +02:00
auto-trait-selection-freeze.old.stderr Point to correct argument in Func Call when Self type fails trait bound 2025-07-07 16:47:15 +08:00
auto-trait-selection-freeze.rs Do not assemble candidates for auto traits of opaque types in their defining scope 2024-07-24 16:00:48 +00:00
auto-trait-selection.next.stderr support non-defining uses in HIR typeck 2025-08-25 14:20:18 +02:00
auto-trait-selection.old.stderr Point to correct argument in Func Call when Self type fails trait bound 2025-07-07 16:47:15 +08:00
auto-trait-selection.rs Do not assemble candidates for auto traits of opaque types in their defining scope 2024-07-24 16:00:48 +00:00
autoderef.rs Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
basic-trait-impl.rs cleaned up some tests 2025-06-30 11:50:19 +05:00
bivariant-lifetime-liveness.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
bound-normalization-fail.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
bound-normalization-fail.stderr Stop inverting expectation in normalization errors 2024-10-16 13:44:56 -04:00
bound-normalization-pass.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
bounds_regression.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
call_method_ambiguous.next.stderr Stabilize opaque type precise capturing 2024-08-17 12:33:29 -04:00
call_method_ambiguous.rs UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
call_method_on_inherent_impl.next.stderr Add some tests 2024-06-13 10:41:52 +00:00
call_method_on_inherent_impl.rs UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
call_method_on_inherent_impl_on_rigid_type.current.stderr Add some tests 2024-06-13 10:41:52 +00:00
call_method_on_inherent_impl_on_rigid_type.next.stderr Add some tests 2024-06-13 10:41:52 +00:00
call_method_on_inherent_impl_on_rigid_type.rs Add some tests 2024-06-13 10:41:52 +00:00
call_method_on_inherent_impl_ref.current.stderr Do not try to reveal hidden types when trying to prove Freeze in the defining scope 2024-07-24 16:00:48 +00:00
call_method_on_inherent_impl_ref.next.stderr Do not try to reveal hidden types when trying to prove Freeze in the defining scope 2024-07-24 16:00:48 +00:00
call_method_on_inherent_impl_ref.rs UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
call_method_without_import.no_import.stderr fix: Add col separator before secondary messages with no source 2025-08-26 15:15:17 -06:00
call_method_without_import.rs Add some tests 2024-06-13 10:41:52 +00:00
capture-lifetime-not-in-hir.rs Print the generic parameter along with the variance in dumps. 2024-08-23 23:00:45 +00:00
capture-lifetime-not-in-hir.stderr Print the generic parameter along with the variance in dumps. 2024-08-23 23:00:45 +00:00
captured-invalid-lifetime.rs Fix ICE when opaque captures a duplicated/invalid lifetime 2025-01-01 19:32:51 +00:00
captured-invalid-lifetime.stderr Fix ICE when opaque captures a duplicated/invalid lifetime 2025-01-01 19:32:51 +00:00
closure-calling-parent-fn.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
closure-in-impl-trait-arg.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
closure-in-impl-trait.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
closure-in-type.rs Promote crashes tests to ui. 2024-10-30 16:19:53 +00:00
cross-return-site-inference.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
cross-return-site-inference.stderr Deduplicate more sized errors on call exprs 2024-01-24 02:53:15 +00:00
deduce-signature-from-supertrait.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
define-via-const.rs Allow defining opaques in statics and consts 2025-03-25 16:44:59 +00:00
define-via-extern.rs Test define opaques in extern items 2025-03-25 16:44:59 +00:00
define-via-extern.stderr Test define opaques in extern items 2025-03-25 16:44:59 +00:00
defined-by-trait-resolution.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
defining-use-captured-non-universal-region.infer.stderr remove test FIXME re once-module-region 2024-03-28 06:41:22 +00:00
defining-use-captured-non-universal-region.rs remove test FIXME re once-module-region 2024-03-28 06:41:22 +00:00
defining-use-captured-non-universal-region.statik.stderr remove test FIXME re once-module-region 2024-03-28 06:41:22 +00:00
defining-use-uncaptured-non-universal-region-2.rs ignore uncaptured lifetimes when checking opaques 2024-03-26 09:26:23 +00:00
defining-use-uncaptured-non-universal-region-3.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
defining-use-uncaptured-non-universal-region.rs ignore uncaptured lifetimes when checking opaques 2024-03-26 09:26:23 +00:00
deprecated_annotation.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
different_where_bounds.rs Ensure the canonical_param_env_cache does not contain inconsistent information about the defining anchor 2024-04-08 15:08:06 +00:00
divergence.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
does-not-live-long-enough.rs
does-not-live-long-enough.stderr handle opaque types before region inference 2025-08-20 11:04:38 +02:00
dont-suggest-box-on-empty-else-arm.rs Don't suggest boxing an empty if/else arm 2023-06-11 00:19:56 +00:00
dont-suggest-box-on-empty-else-arm.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
dyn-impl-type-mismatch.rs Account for expected dyn Trait found impl Trait 2024-01-24 16:57:15 +00:00
dyn-impl-type-mismatch.stderr Account for expected dyn Trait found impl Trait 2024-01-24 16:57:15 +00:00
dyn-incompatible-trait-in-return-position-dyn-trait.rs Use more detailed spans in dyn compat errors within bodies 2025-05-27 08:18:11 +00:00
dyn-incompatible-trait-in-return-position-dyn-trait.stderr Use more detailed spans in dyn compat errors within bodies 2025-05-27 08:18:11 +00:00
dyn-incompatible-trait-in-return-position-impl-trait.rs UI tests: Rename "object safe" to "dyn compatible" 2024-10-10 01:13:29 +02:00
dyn-incompatible-trait-in-return-position-impl-trait.stderr UI tests: Rename "object safe" to "dyn compatible" 2024-10-10 01:13:29 +02:00
dyn-trait-elided-two-inputs-assoc.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
dyn-trait-elided-two-inputs-param.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
dyn-trait-elided-two-inputs-ref-assoc.rs borrowck: more eagerly prepopulate opaques 2024-05-06 16:04:57 +00:00
dyn-trait-elided-two-inputs-ref-param.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
dyn-trait-return-should-be-impl-trait.edition2015.stderr Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
dyn-trait-return-should-be-impl-trait.edition2021.stderr Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
dyn-trait-return-should-be-impl-trait.rs Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
eagerly-reveal-in-local-body.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
equal-hidden-lifetimes.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
equality-in-canonical-query.rs Pass list of defineable opaque types into canonical queries 2024-04-08 15:00:26 +00:00
equality-rpass.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
equality-rpass.stderr
equality.rs compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
equality.stderr compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
equality2.rs compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
equality2.stderr compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
erased-regions-in-hidden-ty.current.stderr ignore uncaptured lifetimes when checking opaques 2024-03-26 09:26:23 +00:00
erased-regions-in-hidden-ty.next.stderr ignore uncaptured lifetimes when checking opaques 2024-03-26 09:26:23 +00:00
erased-regions-in-hidden-ty.rs Remove the -test suffix from normalize directives 2024-12-27 19:58:16 +11:00
example-calendar.rs distinguish overflow and unimplemented in Step::steps_between 2024-11-21 15:49:55 -08:00
example-st.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
example-st.stderr bless tests with new lint messages 2025-08-19 21:27:10 +02:00
extra-impl-in-trait-impl.fixed Marks ADT live if it appears in pattern 2025-06-14 13:44:43 +08:00
extra-impl-in-trait-impl.rs Marks ADT live if it appears in pattern 2025-06-14 13:44:43 +08:00
extra-impl-in-trait-impl.stderr Marks ADT live if it appears in pattern 2025-06-14 13:44:43 +08:00
extra-item.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
extra-item.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
failed-to-resolve-instance-ice-105488.rs add test for ice called Option::unwrap() on a None value in collector.rs:934:13 #105488 2024-04-07 00:25:56 +02:00
failed-to-resolve-instance-ice-105488.stderr add test for ice called Option::unwrap() on a None value in collector.rs:934:13 #105488 2024-04-07 00:25:56 +02:00
failed-to-resolve-instance-ice-123145.rs add test for ICE: failed to resolve instance for <fn() -> impl ...> #123145 2024-04-07 00:48:47 +02:00
failed-to-resolve-instance-ice-123145.stderr add test for ICE: failed to resolve instance for <fn() -> impl ...> #123145 2024-04-07 00:48:47 +02:00
fallback.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
fallback_inference.rs
fallback_inference.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
feature-self-return-type.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
feature-self-return-type.stderr Stabilize impl_trait_projections 2023-09-08 03:45:36 +00:00
fresh-lifetime-from-bare-trait-obj-114664.rs Bless test fallout (duplicate diagnostics) 2024-03-20 13:00:34 -04:00
fresh-lifetime-from-bare-trait-obj-114664.stderr bless tests with new lint messages 2025-08-19 21:27:10 +02:00
future-no-bound-vars-ice-112347.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
generic-with-implicit-hrtb-without-dyn.edition2015.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
generic-with-implicit-hrtb-without-dyn.edition2021.stderr Remove a bunch of diagnostic stashing that doesn't do anything 2025-01-11 19:22:06 +00:00
generic-with-implicit-hrtb-without-dyn.rs Remove a bunch of diagnostic stashing that doesn't do anything 2025-01-11 19:22:06 +00:00
hidden-lifetimes.edition2015.stderr Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
hidden-lifetimes.edition2024.stderr Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
hidden-lifetimes.rs Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
hidden-type-is-opaque-2.default.stderr Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
hidden-type-is-opaque-2.next.stderr Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
hidden-type-is-opaque-2.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
hidden-type-is-opaque.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
ice-unexpected-param-type-whensubstituting-in-region-112823.current.stderr Improve AssocItem::descr. 2025-04-11 11:03:08 +10:00
ice-unexpected-param-type-whensubstituting-in-region-112823.next.stderr Apply nested goals certainty to InspectGoals for normalizes-to 2025-06-09 17:02:09 +00:00
ice-unexpected-param-type-whensubstituting-in-region-112823.rs Apply nested goals certainty to InspectGoals for normalizes-to 2025-06-09 17:02:09 +00:00
impl-fn-hrtb-bounds-2.edition2015.stderr Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
impl-fn-hrtb-bounds-2.edition2024.stderr Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
impl-fn-hrtb-bounds-2.rs Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
impl-fn-hrtb-bounds.rs Replace elided_named_lifetimes with mismatched_lifetime_syntaxes 2025-06-04 10:40:04 -04:00
impl-fn-hrtb-bounds.stderr Replace elided_named_lifetimes with mismatched_lifetime_syntaxes 2025-06-04 10:40:04 -04:00
impl-fn-parsing-ambiguities.rs make type_flags(ReError) & HAS_ERROR 2024-03-20 17:29:58 +00:00
impl-fn-parsing-ambiguities.stderr Make parse error suggestions verbose and fix spans 2024-07-12 03:02:57 +00:00
impl-fn-predefined-lifetimes.edition2015.stderr Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
impl-fn-predefined-lifetimes.edition2024.stderr Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
impl-fn-predefined-lifetimes.rs Add edition checks for some tests that had divergent output 2025-06-25 17:02:26 +00:00
impl-fn-rpit-opaque-107883.rs Add new ui test for returning an Fn trait that returns impl Trait 2025-02-14 05:55:30 -07:00
impl-generic-mismatch.rs compiletest: Stricter parsing for diagnostic kinds 2025-04-07 19:13:31 +03:00
impl-generic-mismatch.stderr fix: Add col separator before secondary messages with no source 2025-08-26 15:15:17 -06:00
impl-subtyper.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-subtyper2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl-trait-in-macro.rs
impl-trait-in-macro.stderr Highlight clarifying information in "expected/found" error 2025-02-02 02:39:43 +00:00
impl-trait-plus-priority.rs Improve diagnostic for E0178 (bad + in type) 2025-04-15 10:08:49 +02:00
impl-trait-plus-priority.stderr Improve diagnostic for E0178 (bad + in type) 2025-04-15 10:08:49 +02:00
impl_fn_associativity.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
impl_trait_projections.rs Fix TAIT & ATPIT feature gating in the presence of anon consts 2025-03-28 18:15:23 +01:00
impl_trait_projections.stderr Fix TAIT & ATPIT feature gating in the presence of anon consts 2025-03-28 18:15:23 +01:00
implicit-capture-late.rs UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
implicit-capture-late.stderr Remove lifetime_capture_rules_2024 feature 2025-02-09 19:09:45 +00:00
in-assoc-type-unconstrained.rs Use the opaque_types_defined_by query to cheaply check for whether a hidden type may be registered for an opaque type 2023-05-12 10:26:50 +00:00
in-assoc-type-unconstrained.stderr Run wfcheck in one big loop instead of per module 2025-06-03 15:16:51 +00:00
in-assoc-type.rs Require TAITs to be mentioned in the signatures of functions that register hidden types for them 2023-07-07 13:13:18 +00:00
in-assoc-type.stderr Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
inside-item-nested-in-anon-const.rs Fix TAIT & ATPIT feature gating in the presence of anon consts 2025-03-28 18:15:23 +01:00
lazy_subtyping_of_opaques.rs Allow constraining opaque types during subtyping in the trait system 2024-06-19 08:29:17 +00:00
lifetime-ambiguity-regression.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
lifetimes.rs Error on using yield without also using #[coroutine] on the closure 2024-04-24 08:05:29 +00:00
mapping-duplicated-lifetimes-issue-114597.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
method-resolution.rs Method resolution constrains hidden types instead of rejecting method candidates 2024-06-13 10:41:53 +00:00
method-resolution2.next.stderr Add some tests 2024-06-13 10:41:52 +00:00
method-resolution2.rs Method resolution constrains hidden types instead of rejecting method candidates 2024-06-13 10:41:53 +00:00
method-resolution3.current.stderr Method resolution constrains hidden types instead of rejecting method candidates 2024-06-13 10:41:53 +00:00
method-resolution3.next.stderr Method resolution constrains hidden types instead of rejecting method candidates 2024-06-13 10:41:53 +00:00
method-resolution3.rs Method resolution constrains hidden types instead of rejecting method candidates 2024-06-13 10:41:53 +00:00
method-resolution4.next.stderr Register a dummy candidate for failed structural normalization during candiate assembly 2024-10-15 20:42:17 -04:00
method-resolution4.rs UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
multiple-defining-usages-in-body.rs Check that RPITs are compatible with the opaques inferred during HIR typeck too 2023-05-31 17:45:45 +00:00
multiple-defining-usages-in-body.stderr Remove a bunch of diagnostic stashing that doesn't do anything 2025-01-11 19:22:06 +00:00
must_outlive_least_region_or_bound.rs Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
must_outlive_least_region_or_bound.stderr Make E0621 missing lifetime suggestion verbose 2025-06-09 19:55:00 +00:00
name-mentioning-macro.rs Don't give APITs names with macro expansion placeholder fragments in it 2025-06-25 15:42:11 +00:00
name-mentioning-macro.stderr Don't give APITs names with macro expansion placeholder fragments in it 2025-06-25 15:42:11 +00:00
needs_least_region_or_bound.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
negative-reasoning.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
negative-reasoning.stderr Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
nested-hkl-lifetime.rs Add regression test 2024-04-08 15:00:03 +00:00
nested-return-type.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nested-return-type2-tait.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
nested-return-type2-tait.stderr Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
nested-return-type2-tait2.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
nested-return-type2-tait2.stderr Remove DefiningAnchor::Bubble from opaque wf check 2023-10-16 15:50:31 +00:00
nested-return-type2-tait3.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
nested-return-type2-tait3.stderr Remove DefiningAnchor::Bubble from opaque wf check 2023-10-16 15:50:31 +00:00
nested-return-type2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nested-return-type3-tait.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
nested-return-type3-tait.stderr Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
nested-return-type3-tait2.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
nested-return-type3-tait2.stderr Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
nested-return-type3-tait3.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
nested-return-type3-tait3.stderr
nested-return-type3.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nested-return-type4.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nested-return-type4.stderr Bless test fallout 2024-08-17 12:43:25 -04:00
nested-rpit-hrtb-2.rs don't ICE on higher ranked hidden types 2023-08-04 15:11:09 +00:00
nested-rpit-hrtb-2.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
nested-rpit-hrtb.rs handle opaque types before region inference 2025-08-20 11:04:38 +02:00
nested-rpit-hrtb.stderr handle opaque types before region inference 2025-08-20 11:04:38 +02:00
nested-rpit-with-anonymous-lifetimes.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
nested_impl_trait.rs UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
nested_impl_trait.stderr Point at tail expression on rpit E0277 2024-11-02 03:08:04 +00:00
nesting.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
no-anonymize-regions.rs handle opaque types before region inference 2025-08-20 11:04:38 +02:00
no-method-suggested-traits.rs compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
no-method-suggested-traits.stderr fix: fix issue 143740, Wrong messages from compiler confusing methods with the same name from different traits 2025-07-17 19:26:39 +08:00
no-trait.rs
no-trait.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
normalize-opaque-with-bound-vars.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
normalize-tait-in-const.rs Change const trait bound syntax from ~const to [const] 2025-06-26 13:46:45 +00:00
normalize-tait-in-const.stderr Constify Fn* traits 2025-07-08 14:36:43 +00:00
not_general_enough_regression_106630.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
opaque-cast-field-access-in-future.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
opaque-cast-field-access-in-future.stderr Point at tail expression on rpit E0277 2024-11-02 03:08:04 +00:00
opaque-hidden-inferred-rpitit.rs Don't ICE in opaque_hidden_inferred_bound lint for RPITIT in trait with no default method body 2024-09-16 12:35:54 -04:00
opaque-used-in-extraneous-argument.rs Bless test fallout (duplicate diagnostics) 2024-03-20 13:00:34 -04:00
opaque-used-in-extraneous-argument.stderr Do not recover missing lifetime with random in-scope lifetime 2025-03-03 05:57:55 +00:00
opt-out-bound-not-satisfied.rs Reword diagnostic about relaxing non-Sized bound 2025-07-18 12:13:30 +02:00
opt-out-bound-not-satisfied.stderr Reword diagnostic about relaxing non-Sized bound 2025-07-18 12:13:30 +02:00
point-to-type-err-cause-on-impl-trait-return.rs Make error message less awkward 2025-02-03 19:00:22 +00:00
point-to-type-err-cause-on-impl-trait-return.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
printing-binder.rs
printing-binder.stderr
private_unused.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
projection-mismatch-in-impl-where-clause.rs
projection-mismatch-in-impl-where-clause.stderr Point at tail expression on rpit E0277 2024-11-02 03:08:04 +00:00
projection.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
question_mark.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
recursive-auto-trait.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
recursive-bound-eval.next.stderr Also test under next solver 2024-06-11 08:19:19 +00:00
recursive-bound-eval.rs Also test under next solver 2024-06-11 08:19:19 +00:00
recursive-coroutine-boxed.next.stderr FIXME(-Znext-solver) triage 2025-06-03 14:23:56 +02:00
recursive-coroutine-boxed.rs FIXME(-Znext-solver) triage 2025-06-03 14:23:56 +02:00
recursive-coroutine-indirect.current.stderr Eagerly detect coroutine recursion pre-mono when possible 2025-02-05 18:36:17 +00:00
recursive-coroutine-indirect.next.stderr Eagerly detect coroutine recursion pre-mono when possible 2025-02-05 18:36:17 +00:00
recursive-coroutine-indirect.rs Eagerly detect coroutine recursion pre-mono when possible 2025-02-05 18:36:17 +00:00
recursive-ice-101862.rs add test for opaque type with non-universal region substs #101852 2024-03-23 12:01:39 +01:00
recursive-ice-101862.stderr add TypingMode::Borrowck 2025-04-03 11:13:10 +02:00
recursive-impl-trait-type-direct.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
recursive-impl-trait-type-indirect.rs Error on using yield without also using #[coroutine] on the closure 2024-04-24 08:05:29 +00:00
recursive-impl-trait-type-indirect.stderr Just error on recursive opaque ty in HIR typeck 2025-05-20 10:08:56 +00:00
recursive-impl-trait-type-through-non-recursive.rs
recursive-impl-trait-type-through-non-recursive.stderr
recursive-in-exhaustiveness.current.stderr support non-defining uses in HIR typeck 2025-08-25 14:20:18 +02:00
recursive-in-exhaustiveness.next.stderr support non-defining uses in HIR typeck 2025-08-25 14:20:18 +02:00
recursive-in-exhaustiveness.rs support non-defining uses in HIR typeck 2025-08-25 14:20:18 +02:00
recursive-parent-trait-method-call.rs Add some tests 2024-06-13 10:41:52 +00:00
recursive-type-alias-impl-trait-declaration-too-subtle-2.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
recursive-type-alias-impl-trait-declaration-too-subtle.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
recursive-type-alias-impl-trait-declaration-too-subtle.stderr Run wfcheck in one big loop instead of per module 2025-06-03 15:16:51 +00:00
recursive-type-alias-impl-trait-declaration.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
recursive-type-alias-impl-trait-declaration.stderr On E0277, point at type that doesn't implement bound 2025-08-22 17:55:15 +00:00
region-escape-via-bound-contravariant-closure.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
region-escape-via-bound-contravariant.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
region-escape-via-bound.rs
region-escape-via-bound.stderr Bless test fallout 2024-08-17 12:43:25 -04:00
return-position-impl-trait-minimal.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
reveal-during-codegen.rs Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
rpit-assoc-pair-with-lifetime.rs Reword mismatched-lifetime-syntaxes text based on feedback 2025-07-14 09:52:58 -04:00
rpit-assoc-pair-with-lifetime.stderr Use unnamed lifetime spans as primary spans for MISMATCHED_LIFETIME_SYNTAXES 2025-08-23 22:11:43 +00:00
rpit-not-sized.rs
rpit-not-sized.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
stashed-diag-issue-121504.rs Reword "crate not found" resolve message 2025-01-24 01:19:50 +00:00
stashed-diag-issue-121504.stderr Reword "crate not found" resolve message 2025-01-24 01:19:50 +00:00
static-lifetime-return-position-impl-trait.rs Split part of adt_const_params into unsized_const_params 2024-07-17 11:01:29 +01:00
static-return-lifetime-infered.rs
static-return-lifetime-infered.stderr Bless test fallout 2024-08-17 12:43:25 -04:00
stranded-opaque.rs Bless test fallout (duplicate diagnostics) 2024-03-20 13:00:34 -04:00
stranded-opaque.stderr Bless test fallout (duplicate diagnostics) 2024-03-20 13:00:34 -04:00
struct-field-fragment-in-name.rs Don't give APITs names with macro expansion placeholder fragments in it 2025-06-25 15:42:11 +00:00
suggest-calling-rpit-closure.rs
suggest-calling-rpit-closure.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
trait_resolution.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
trait_type.rs
trait_type.stderr Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
trait_upcasting.rs Allow constraining opaque types during auto trait casting 2024-06-19 08:28:31 +00:00
trait_upcasting_reference_mismatch.rs Allow constraining opaque types during auto trait casting 2024-06-19 08:28:31 +00:00
trait_upcasting_reference_mismatch.stderr Allow constraining opaque types during auto trait casting 2024-06-19 08:28:31 +00:00
two_tait_defining_each_other.current.stderr Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
two_tait_defining_each_other.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
two_tait_defining_each_other2.current.stderr add TypingMode::Borrowck 2025-04-03 11:13:10 +02:00
two_tait_defining_each_other2.next.stderr support non-defining uses in HIR typeck 2025-08-25 14:20:18 +02:00
two_tait_defining_each_other2.rs support non-defining uses in HIR typeck 2025-08-25 14:20:18 +02:00
two_tait_defining_each_other3.current.stderr Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
two_tait_defining_each_other3.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
type-alias-generic-param.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
type-alias-generic-param.stderr bless tests with new lint messages 2025-08-19 21:27:10 +02:00
type-alias-impl-trait-in-fn-body.rs Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
type-alias-impl-trait-in-fn-body.stderr Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
type-arg-mismatch-due-to-impl-trait.rs
type-arg-mismatch-due-to-impl-trait.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
type_parameters_captured.rs
type_parameters_captured.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
unactionable_diagnostic.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unactionable_diagnostic.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unactionable_diagnostic.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
universal-mismatched-type.rs
universal-mismatched-type.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
universal-two-impl-traits.rs
universal-two-impl-traits.stderr Highlight clarifying information in "expected/found" error 2025-02-02 02:39:43 +00:00
universal_hrtb_anon.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
universal_hrtb_named.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
universal_in_adt_in_parameters.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
universal_in_impl_trait_in_parameters.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
universal_in_trait_defn_parameters.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
universal_multiple_bounds.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
universal_wrong_bounds.rs
universal_wrong_bounds.stderr Special-case item attributes in the suggestion output 2023-04-12 22:50:10 +00:00
universal_wrong_hrtb.rs migrate lifetime too 2023-06-26 19:14:49 +00:00
universal_wrong_hrtb.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
unsafety-checking-cycle.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unsize-cast-validation-rpit.rs Don't check unsize goal in MIR validation when opaques remain 2024-10-15 21:01:42 -04:00
unsize_adt.rs Allow constraining opaque types during unsizing 2024-06-19 08:28:31 +00:00
unsize_slice.rs Allow constraining opaque types during unsizing 2024-06-19 08:28:31 +00:00
unsized_coercion.next.stderr do not constrain infer vars in find_best_leaf_obligation 2024-11-26 11:45:01 +01:00
unsized_coercion.rs do not constrain infer vars in find_best_leaf_obligation 2024-11-26 11:45:01 +01:00
unsized_coercion2.old.stderr Add more tests 2024-06-19 08:28:31 +00:00
unsized_coercion2.rs Add more tests 2024-06-19 08:28:31 +00:00
unsized_coercion3.next.stderr do not constrain infer vars in find_best_leaf_obligation 2024-11-26 11:45:01 +01:00
unsized_coercion3.old.stderr do not constrain infer vars in find_best_leaf_obligation 2024-11-26 11:45:01 +01:00
unsized_coercion3.rs do not constrain infer vars in find_best_leaf_obligation 2024-11-26 11:45:01 +01:00
unsized_coercion4.rs More tests 2024-06-19 08:40:29 +00:00
unsized_coercion5.old.stderr remove feature(trait_upcasting) from tests and bless them 2025-02-06 23:44:23 +01:00
unsized_coercion5.rs remove feature(trait_upcasting) from tests and bless them 2025-02-06 23:44:23 +01:00
upvar_captures.rs Taint infcx when reporting errors 2024-06-19 04:41:56 +00:00
upvar_captures.stderr Taint infcx when reporting errors 2024-06-19 04:41:56 +00:00
variance.e2024.stderr Remove lifetime_capture_rules_2024 feature 2025-02-09 19:09:45 +00:00
variance.old.stderr Remove lifetime_capture_rules_2024 feature 2025-02-09 19:09:45 +00:00
variance.rs UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
wf-check-hidden-type.rs when defining opaques, require the hidden type to be well-formed 2024-02-27 15:57:49 +01:00
wf-check-hidden-type.stderr diagnostics :3 2025-08-20 11:10:38 +02:00
wf-eval-order.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
where-allowed-2.rs
where-allowed-2.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
where-allowed.rs Fortify generic param default checks 2025-08-06 01:26:26 +02:00
where-allowed.stderr Fortify generic param default checks 2025-08-06 01:26:26 +02:00
xcrate.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
xcrate_simple.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00