rust/tests/ui/impl-trait
bors 551abd65be Auto merge of #116891 - aliemjay:opaque-region-infer-rework-2, r=compiler-errors,oli-obk
rework opaque type region inference

User-facing changes are documented in [this comment](https://github.com/rust-lang/rust/pull/116891#issuecomment-1973774412).

The design document is in [this comment](https://github.com/rust-lang/rust/pull/116891#issuecomment-1836900102).

---

\- Fix Ice in check_unique; ICE -> Error; fixes #122782.
\- Ignore uncaptured lifetime args; ICE -> Pass; fixes #111906, fixes #110623, fixes #109059, fixes #122307
\- Except equal parameters from the uniqueness check; Pass -> Error; fixes #113916.
\- Check RPITs for invalid args; Pass -> Error; fixes #111935; ICE -> Error; fixes #110726.
\- Rework opaque types region inference; Pass -> Error; fixes #113971, fixes #112841.
\- Reject external lifetimes as invalid args; Pass -> Error; fixes #105498.

r? `@ghost`
2024-03-28 09:51:39 +00:00
..
alias-liveness
auxiliary
diagnostics
explicit-generic-args-with-impl-trait
in-ctfe
in-trait check RPITs for invalid args 2024-03-28 06:00:26 +00:00
issues Bless test fallout (duplicate diagnostics) 2024-03-20 13:00:34 -04:00
multiple-lifetimes
rpit remove test FIXME re once-module-region 2024-03-28 06:41:22 +00:00
transmute
arg-position-impl-trait-too-long.rs
arg-position-impl-trait-too-long.stderr
associated-impl-trait-type-generic-trait.rs
associated-impl-trait-type-issue-114325.rs
associated-impl-trait-type-trivial.rs
associated-impl-trait-type.rs
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
async_scope_creep.rs
auto-trait-coherence.next.stderr
auto-trait-coherence.old.stderr
auto-trait-coherence.rs
auto-trait-leak2.rs
auto-trait-leak2.stderr
auto-trait-leak-rpass.rs
auto-trait-leak.rs
auto-trait-leak.stderr Make DefiningAnchor::Bind only store the opaque types that may be constrained, instead of the current infcx root item. 2024-03-11 17:19:37 +00:00
autoderef.rs Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
bivariant-lifetime-liveness.rs
bound-normalization-fail.rs
bound-normalization-fail.stderr
bound-normalization-pass.rs
bounds_regression.rs
can-return-unconstrained-closure.rs
capture-lifetime-not-in-hir.rs
capture-lifetime-not-in-hir.stderr
closure-calling-parent-fn.rs
closure-in-impl-trait-arg.rs
closure-in-impl-trait.rs
coherence-treats-tait-ambig.current.stderr
coherence-treats-tait-ambig.rs
coherence-treats-tait-ambig.stderr
cross-return-site-inference.rs
cross-return-site-inference.stderr
deduce-signature-from-supertrait.rs
defined-by-trait-resolution.rs
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 ignore uncaptured lifetimes when checking opaques 2024-03-26 09:26:23 +00: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
divergence.rs
does-not-live-long-enough.rs
does-not-live-long-enough.stderr
dont-suggest-box-on-empty-else-arm.rs
dont-suggest-box-on-empty-else-arm.stderr
dyn-impl-type-mismatch.rs
dyn-impl-type-mismatch.stderr
dyn-trait-elided-two-inputs-assoc.rs
dyn-trait-elided-two-inputs-param.rs
dyn-trait-elided-two-inputs-ref-assoc.rs
dyn-trait-elided-two-inputs-ref-param.rs
dyn-trait-return-should-be-impl-trait.rs
dyn-trait-return-should-be-impl-trait.stderr
eagerly-reveal-in-local-body.rs
equal-hidden-lifetimes.rs
equality2.rs
equality2.stderr
equality-in-canonical-query.clone.stderr
equality-in-canonical-query.rs
equality-rpass.rs
equality-rpass.stderr
equality.rs
equality.stderr Use TraitRef::to_string sorting in favor of TraitRef::ord, as the latter compares DefIds which we need to avoid 2024-03-27 14:02:15 +00: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 ignore uncaptured lifetimes when checking opaques 2024-03-26 09:26:23 +00:00
example-calendar.rs
example-st.rs
example-st.stderr
extra-impl-in-trait-impl.fixed
extra-impl-in-trait-impl.rs
extra-impl-in-trait-impl.stderr
extra-item.rs
extra-item.stderr
fallback_inference.rs
fallback_inference.stderr
fallback.rs
feature-self-return-type.rs
feature-self-return-type.stderr
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 test fallout (duplicate diagnostics) 2024-03-20 13:00:34 -04:00
generic-with-implicit-hrtb-without-dyn.edition2015.stderr
generic-with-implicit-hrtb-without-dyn.edition2021.stderr
generic-with-implicit-hrtb-without-dyn.rs
hidden-lifetimes.rs
hidden-lifetimes.stderr
hidden-type-is-opaque-2.default.stderr test that fudging with opaque types is the same in the new solver 2024-02-28 09:54:44 +00:00
hidden-type-is-opaque-2.next.stderr test that fudging with opaque types is the same in the new solver 2024-02-28 09:54:44 +00:00
hidden-type-is-opaque-2.rs test that fudging with opaque types is the same in the new solver 2024-02-28 09:54:44 +00:00
hidden-type-is-opaque.rs
ice-unexpected-param-type-whensubstituting-in-region-112823.rs add test for https://github.com/rust-lang/rust/issues/112823 2024-03-22 08:27:14 +01:00
ice-unexpected-param-type-whensubstituting-in-region-112823.stderr add test for https://github.com/rust-lang/rust/issues/112823 2024-03-22 08:27:14 +01:00
impl_fn_associativity.rs
impl_trait_projections.rs
impl_trait_projections.stderr Use TraitRef::to_string sorting in favor of TraitRef::ord, as the latter compares DefIds which we need to avoid 2024-03-27 14:02:15 +00:00
impl-fn-hrtb-bounds-2.rs
impl-fn-hrtb-bounds-2.stderr
impl-fn-hrtb-bounds.rs make type_flags(ReError) & HAS_ERROR 2024-03-20 17:29:58 +00:00
impl-fn-hrtb-bounds.stderr make type_flags(ReError) & HAS_ERROR 2024-03-20 17:29:58 +00: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 type_flags(ReError) & HAS_ERROR 2024-03-20 17:29:58 +00:00
impl-fn-predefined-lifetimes.rs check RPITs for invalid args 2024-03-28 06:00:26 +00:00
impl-fn-predefined-lifetimes.stderr check RPITs for invalid args 2024-03-28 06:00:26 +00:00
impl-generic-mismatch-ab.rs
impl-generic-mismatch-ab.stderr
impl-generic-mismatch.rs
impl-generic-mismatch.stderr
impl-subtyper2.rs
impl-subtyper.rs
impl-trait-in-macro.rs
impl-trait-in-macro.stderr
impl-trait-plus-priority.rs
impl-trait-plus-priority.stderr
implicit-capture-late.rs
implicit-capture-late.stderr Improve error message for opaque captures 2024-03-08 19:08:13 +00:00
in-assoc-type-unconstrained.rs
in-assoc-type-unconstrained.stderr
in-assoc-type.rs
in-assoc-type.stderr
issue-35668.rs
issue-35668.stderr
issue-36792.rs
issue-46959.rs
issue-49556.rs
issue-49579.rs
issue-49685.rs
issue-51185.rs
issue-54966.rs
issue-54966.stderr
issue-55872-1.rs
issue-55872-1.stderr
issue-55872-2.rs
issue-55872-2.stderr
issue-55872-3.rs
issue-55872-3.stderr
issue-55872.rs
issue-55872.stderr
issue-56445.rs
issue-68532.rs
issue-72911.rs
issue-72911.stderr
issue-87450.rs
issue-87450.stderr
issue-99073-2.rs
issue-99073-2.stderr
issue-99073.rs
issue-99073.stderr
issue-99642-2.rs
issue-99642.rs
issue-99914.rs
issue-99914.stderr
issue-100075-2.rs
issue-100075-2.stderr
issue-100075.rs
issue-100075.stderr
issue-100187.rs
issue-102605.rs
issue-102605.stderr
issue-103181-1.current.stderr Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
issue-103181-1.next.stderr Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
issue-103181-1.rs Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
issue-103181-2.rs
issue-103181-2.stderr
issue-103599.rs
issue-103599.stderr
issue-108591.rs
issue-108592.rs
lifetime-ambiguity-regression.rs
lifetimes2.rs
lifetimes.rs
mapping-duplicated-lifetimes-issue-114597.rs
method-suggestion-no-duplication.rs
method-suggestion-no-duplication.stderr
multiple-defining-usages-in-body.rs
multiple-defining-usages-in-body.stderr
must_outlive_least_region_or_bound.rs
must_outlive_least_region_or_bound.stderr
needs_least_region_or_bound.rs
negative-reasoning.rs
negative-reasoning.stderr
nested_impl_trait.rs
nested_impl_trait.stderr
nested-return-type2-tait2.rs
nested-return-type2-tait2.stderr
nested-return-type2-tait3.rs
nested-return-type2-tait3.stderr
nested-return-type2-tait.rs
nested-return-type2-tait.stderr
nested-return-type2.rs
nested-return-type3-tait2.rs
nested-return-type3-tait2.stderr
nested-return-type3-tait3.rs
nested-return-type3-tait3.stderr
nested-return-type3-tait.rs
nested-return-type3-tait.stderr
nested-return-type3.rs
nested-return-type4.rs
nested-return-type4.stderr
nested-return-type.rs
nested-rpit-hrtb-2.rs
nested-rpit-hrtb-2.stderr
nested-rpit-hrtb.rs register opaques that reference errors 2024-03-20 17:30:19 +00:00
nested-rpit-hrtb.stderr register opaques that reference errors 2024-03-20 17:30:19 +00:00
nested-rpit-with-anonymous-lifetimes.rs
nesting.rs
no-method-suggested-traits.rs
no-method-suggested-traits.stderr Sort a diagnostic by DefPathStr instead of DefId 2024-03-27 14:02:16 +00:00
no-trait.rs
no-trait.stderr
normalize-opaque-with-bound-vars.rs
normalize-tait-in-const.rs
normalize-tait-in-const.stderr Provide structured suggestion for #![feature(foo)] 2024-03-18 16:08:58 +00:00
not_general_enough_regression_106630.rs
object-unsafe-trait-in-return-position-dyn-trait.rs
object-unsafe-trait-in-return-position-dyn-trait.stderr
object-unsafe-trait-in-return-position-impl-trait.rs
object-unsafe-trait-in-return-position-impl-trait.stderr
opaque-cast-field-access-in-future.rs
opaque-cast-field-access-in-future.stderr
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 Bless test fallout (duplicate diagnostics) 2024-03-20 13:00:34 -04:00
point-to-type-err-cause-on-impl-trait-return.rs
point-to-type-err-cause-on-impl-trait-return.stderr
printing-binder.rs
printing-binder.stderr
private_unused.rs
projection-mismatch-in-impl-where-clause.rs
projection-mismatch-in-impl-where-clause.stderr
projection.rs
question_mark.rs
recursive-auto-trait.rs
recursive-coroutine-boxed.next.stderr Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
recursive-coroutine-boxed.rs Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
recursive-coroutine-indirect.current.stderr Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
recursive-coroutine-indirect.next.stderr Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
recursive-coroutine-indirect.rs Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04: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 test for opaque type with non-universal region substs #101852 2024-03-23 12:01:39 +01:00
recursive-impl-trait-type-direct.rs
recursive-impl-trait-type-indirect.rs
recursive-impl-trait-type-indirect.stderr
recursive-impl-trait-type-through-non-recursive.rs
recursive-impl-trait-type-through-non-recursive.stderr
recursive-type-alias-impl-trait-declaration-too-subtle-2.rs
recursive-type-alias-impl-trait-declaration-too-subtle.rs
recursive-type-alias-impl-trait-declaration-too-subtle.stderr
recursive-type-alias-impl-trait-declaration.rs
recursive-type-alias-impl-trait-declaration.stderr
region-escape-via-bound-contravariant-closure.rs
region-escape-via-bound-contravariant.rs
region-escape-via-bound.rs
region-escape-via-bound.stderr
return-position-impl-trait-minimal.rs
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
rpit-not-sized.rs
rpit-not-sized.stderr
stashed-diag-issue-121504.rs Overhaul how stashed diagnostics work, again. 2024-02-29 11:08:27 +11:00
stashed-diag-issue-121504.stderr Overhaul how stashed diagnostics work, again. 2024-02-29 11:08:27 +11:00
static-lifetime-return-position-impl-trait.rs
static-return-lifetime-infered.rs
static-return-lifetime-infered.stderr
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
suggest-calling-rpit-closure.rs
suggest-calling-rpit-closure.stderr
trait_resolution.rs
trait_type.rs
trait_type.stderr
two_tait_defining_each_other2.current.stderr Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
two_tait_defining_each_other2.next.stderr Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
two_tait_defining_each_other2.rs Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
two_tait_defining_each_other3.current.stderr Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
two_tait_defining_each_other3.rs Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
two_tait_defining_each_other.current.stderr Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
two_tait_defining_each_other.rs Ignore tests w/ current/next revisions from compare-mode=next-solver 2024-03-10 21:18:41 -04:00
type_parameters_captured.rs
type_parameters_captured.stderr
type-alias-generic-param.rs
type-alias-generic-param.stderr
type-alias-impl-trait-in-fn-body.rs
type-arg-mismatch-due-to-impl-trait.rs
type-arg-mismatch-due-to-impl-trait.stderr
unactionable_diagnostic.fixed
unactionable_diagnostic.rs
unactionable_diagnostic.stderr
universal_hrtb_anon.rs
universal_hrtb_named.rs
universal_in_adt_in_parameters.rs
universal_in_impl_trait_in_parameters.rs
universal_in_trait_defn_parameters.rs
universal_multiple_bounds.rs
universal_wrong_bounds.rs
universal_wrong_bounds.stderr
universal_wrong_hrtb.rs
universal_wrong_hrtb.stderr
universal-mismatched-type.rs
universal-mismatched-type.stderr
universal-two-impl-traits.rs
universal-two-impl-traits.stderr
unsafety-checking-cycle.rs
variance.e2024.stderr
variance.new.stderr
variance.old.stderr
variance.rs
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 when defining opaques, require the hidden type to be well-formed 2024-02-27 15:57:49 +01:00
wf-eval-order.rs
where-allowed-2.rs
where-allowed-2.stderr
where-allowed.rs
where-allowed.stderr Merge collect_mod_item_types query into check_well_formed 2024-03-07 14:26:31 +00:00
xcrate_simple.rs
xcrate.rs