rust/tests/ui/impl-trait
Matthias Krüger 8ddc0df1f1
Rollup merge of #116219 - compiler-errors:relate-alias-ty-with-variance, r=lcnr
Relate alias ty with variance

In the new solver, turns out that the subst-relate branch of the alias-relate predicate was relating args invariantly even for opaques, which have variance 💀.

This change is a bit more invasive, but I'd rather not special-case it [here](aeaa5c30e5/compiler/rustc_trait_selection/src/solve/alias_relate.rs (L171-L190)) and then have it break elsewhere. I'm doing a perf run to see if the extra call to `def_kind` is that expensive, if it is, I'll reconsider.

r? ``@lcnr``
2023-10-11 20:08:20 +02:00
..
auxiliary
diagnostics
explicit-generic-args-with-impl-trait diagnostics: remove inconsistent English article "this" from E0107 2023-02-23 10:27:06 -07:00
in-trait Rollup merge of #116219 - compiler-errors:relate-alias-ty-with-variance, r=lcnr 2023-10-11 20:08:20 +02:00
issues Auto merge of #114811 - estebank:impl-ambiguity, r=wesleywiser 2023-10-06 18:44:32 +00:00
multiple-lifetimes Rename tests to ensure they don't have overlapping names. 2023-03-22 21:12:40 -07:00
rpit check for non-defining uses of RPIT 2023-08-14 15:25:20 +02:00
arg-position-impl-trait-too-long.rs Don't print newlines in APITs 2023-05-25 02:45:14 +00:00
arg-position-impl-trait-too-long.stderr Don't print newlines in APITs 2023-05-25 02:45:14 +00:00
associated-impl-trait-type-generic-trait.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
associated-impl-trait-type-trivial.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
associated-impl-trait-type.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
async_scope_creep.rs Bubble up opaque <eq> opaque operations instead of picking an order 2023-09-11 16:53:39 +00:00
async_scope_creep.tait.stderr Bubble up opaque <eq> opaque operations instead of picking an order 2023-09-11 16:53:39 +00:00
auto-trait-leak2.rs Revert "Suggest using Arc on !Send/!Sync types" 2023-08-28 03:16:48 -07:00
auto-trait-leak2.stderr Revert "Suggest using Arc on !Send/!Sync types" 2023-08-28 03:16:48 -07:00
auto-trait-leak-rpass.rs
auto-trait-leak.rs More precisely detect cycle errors from type_of on opaque 2023-08-27 22:03:16 +00:00
auto-trait-leak.stderr More precisely detect cycle errors from type_of on opaque 2023-08-27 22:03:16 +00:00
auto-trait.rs
auto-trait.stderr
autoderef.rs Consider a goal as NOT changed if its response is identity modulo regions 2023-07-27 04:00:49 +00:00
bound-normalization-fail.rs Stabilize impl_trait_projections 2023-09-08 03:45:36 +00:00
bound-normalization-fail.stderr Stabilize impl_trait_projections 2023-09-08 03:45:36 +00:00
bound-normalization-pass.rs Remove save-analysis. 2023-02-16 15:14:45 +11:00
bounds_regression.rs
can-return-unconstrained-closure.rs
capture-lifetime-not-in-hir.rs Stabilize impl_trait_projections 2023-09-08 03:45:36 +00:00
capture-lifetime-not-in-hir.stderr Stabilize impl_trait_projections 2023-09-08 03:45:36 +00:00
closure-calling-parent-fn.rs
closure-in-impl-trait-arg.rs
closure-in-impl-trait.rs
coherence-treats-tait-ambig.current.stderr Treat TAIT equation as always ambiguous in coherence 2023-06-18 22:52:30 +00:00
coherence-treats-tait-ambig.rs update tests 2023-09-21 08:17:58 +02:00
coherence-treats-tait-ambig.stderr update tests 2023-09-21 08:17:58 +02:00
cross-return-site-inference.rs Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
cross-return-site-inference.stderr Show suggestion for <SelfTy as Trait>::assoc_fn in more cases and fmt code 2023-10-04 02:04:14 +00:00
deduce-signature-from-supertrait.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
defined-by-trait-resolution.rs allow opaques to be defined by trait queries 2023-07-14 12:35:33 +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 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 Don't suggest boxing an empty if/else arm 2023-06-11 00:19:56 +00:00
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 Remove return type sized check hack from hir typeck 2023-05-18 01:53:01 +00:00
dyn-trait-return-should-be-impl-trait.stderr Remove return type sized check hack from hir typeck 2023-05-18 01:53:01 +00:00
equal-hidden-lifetimes.rs Convert a hard-warning about named static lifetimes into lint "unused_lifetimes" 2023-02-22 09:44:26 +08:00
equality2.rs
equality2.stderr Mention fn coercion rules (needs to be expanded) 2023-01-30 21:51:33 +00:00
equality-rpass.rs
equality-rpass.stderr
equality.rs
equality.stderr Don't sort strings right after we just sorted by types 2023-06-27 23:31:06 +00:00
example-calendar.rs
example-st.rs
extra-impl-in-trait-impl.fixed improve error for impl<..> impl Trait for Type 2023-05-13 10:51:21 +02:00
extra-impl-in-trait-impl.rs improve error for impl<..> impl Trait for Type 2023-05-13 10:51:21 +02:00
extra-impl-in-trait-impl.stderr improve error for impl<..> impl Trait for Type 2023-05-13 10:51:21 +02:00
extra-item.rs
extra-item.stderr
fallback_inference.rs
fallback_inference.stderr
fallback.rs
feature-self-return-type.rs Stabilize impl_trait_projections 2023-09-08 03:45:36 +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 Record binder for bare trait object in LifetimeCollectVisitor 2023-08-11 03:15:41 +00:00
fresh-lifetime-from-bare-trait-obj-114664.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00: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 Label opaque type for 'captures lifetime' error message 2023-03-03 05:02:34 +00:00
hidden-type-is-opaque-2.rs Fix invalid suggestion for mismatched types in closure arguments 2023-07-30 17:15:55 +02:00
hidden-type-is-opaque-2.stderr Fix invalid suggestion for mismatched types in closure arguments 2023-07-30 17:15:55 +02:00
hidden-type-is-opaque.rs
impl_fn_associativity.rs
impl_trait_projections.rs When suggesting writing a fully qualified path probe for appropriate types 2023-01-11 21:30:10 +00:00
impl_trait_projections.stderr When suggesting writing a fully qualified path probe for appropriate types 2023-01-11 21:30:10 +00:00
impl-fn-hrtb-bounds-2.rs
impl-fn-hrtb-bounds-2.stderr Remove index from BrAnon 2023-04-06 23:01:40 -04:00
impl-fn-hrtb-bounds.rs
impl-fn-hrtb-bounds.stderr
impl-fn-parsing-ambiguities.rs
impl-fn-parsing-ambiguities.stderr
impl-fn-predefined-lifetimes.rs
impl-fn-predefined-lifetimes.stderr
impl-generic-mismatch-ab.rs
impl-generic-mismatch-ab.stderr
impl-generic-mismatch.rs
impl-generic-mismatch.stderr
impl-subtyper2.rs move subtyper change reveal_all 2023-10-05 18:56:30 +03:00
impl-subtyper.rs move subtyper change reveal_all 2023-10-05 18:56:30 +03:00
impl-trait-in-macro.rs
impl-trait-in-macro.stderr
impl-trait-plus-priority.rs
impl-trait-plus-priority.stderr
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 Point to argument/return type instead of the whole function header 2023-06-22 15:00:12 +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 Require TAITs to be mentioned in the signatures of functions that register hidden types for them 2023-07-07 13:13:18 +00:00
issue-35668.rs
issue-35668.stderr
issue-36792.rs Move test files 2023-04-20 15:06:17 -03:00
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 Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-55872-1.stderr
issue-55872-2.rs Bless tests. 2023-09-23 13:47:30 +00:00
issue-55872-2.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
issue-55872-3.rs Remove compare mode 2023-07-03 21:40:04 +00:00
issue-55872-3.stderr adjust how closure/generator types and rvalues are printed 2023-09-21 22:20:58 +02:00
issue-55872.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-55872.stderr
issue-56445.rs
issue-68532.rs
issue-72911.rs
issue-72911.stderr
issue-86465.rs Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
issue-86465.stderr Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
issue-87450.rs
issue-87450.stderr
issue-99073-2.rs check for non-defining uses of RPIT 2023-08-14 15:25:20 +02:00
issue-99073-2.stderr check for non-defining uses of RPIT 2023-08-14 15:25:20 +02:00
issue-99073.rs check for non-defining uses of RPIT 2023-08-14 15:25:20 +02:00
issue-99073.stderr adjust how closure/generator types and rvalues are printed 2023-09-21 22:20:58 +02:00
issue-99642-2.rs
issue-99642.rs
issue-99914.rs
issue-99914.stderr fix: improve the suggestion on future not awaited 2023-02-13 16:23:23 +01:00
issue-100075-2.rs
issue-100075-2.stderr
issue-100075.rs
issue-100075.stderr
issue-100187.rs
issue-102605.rs
issue-102605.stderr Check entry type as part of item type checking. 2023-07-15 22:02:16 +00:00
issue-103181-1.current.stderr Use error term if missing associated item in new solver 2023-05-16 16:02:17 +00:00
issue-103181-1.next.stderr Use error term if missing associated item in new solver 2023-05-16 16:02:17 +00:00
issue-103181-1.rs Use error term if missing associated item in new solver 2023-05-16 16:02:17 +00:00
issue-103181-2.rs More precisely detect cycle errors from type_of on opaque 2023-08-27 22:03:16 +00:00
issue-103181-2.stderr More precisely detect cycle errors from type_of on opaque 2023-08-27 22:03:16 +00:00
issue-103599.rs
issue-103599.stderr
issue-108591.rs Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
issue-108592.rs Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
lifetime-ambiguity-regression.rs Paper over an accidental regression 2023-09-14 15:16:48 +00:00
lifetimes2.rs
lifetimes.rs
mapping-duplicated-lifetimes-issue-114597.rs add'l test 2023-08-08 09:39:59 +00:00
method-suggestion-no-duplication.rs
method-suggestion-no-duplication.stderr
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 Check that RPITs are compatible with the opaques inferred during HIR typeck too 2023-05-31 17:45:45 +00:00
must_outlive_least_region_or_bound.rs
must_outlive_least_region_or_bound.stderr remove trailing dots 2023-10-08 10:06:17 +00:00
needs_least_region_or_bound.rs
negative-reasoning.rs
negative-reasoning.stderr
nested_impl_trait.rs Tweak wording of E0562 2023-10-04 19:51:43 +00:00
nested_impl_trait.stderr Tweak wording of E0562 2023-10-04 19:51:43 +00:00
nested-return-type2-tait2.rs
nested-return-type2-tait2.stderr adjust how closure/generator types and rvalues are printed 2023-09-21 22:20:58 +02:00
nested-return-type2-tait3.rs
nested-return-type2-tait3.stderr adjust how closure/generator types and rvalues are printed 2023-09-21 22:20:58 +02:00
nested-return-type2-tait.rs
nested-return-type2-tait.stderr Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
nested-return-type2.rs Nested impl traits trigger opaque_hidden_inferred_bound too much 2023-03-23 06:19:52 +00:00
nested-return-type3-tait2.rs
nested-return-type3-tait2.stderr Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
nested-return-type3-tait3.rs
nested-return-type3-tait3.stderr
nested-return-type3-tait.rs
nested-return-type3-tait.stderr Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
nested-return-type3.rs Nested impl traits trigger opaque_hidden_inferred_bound too much 2023-03-23 06:19:52 +00:00
nested-return-type4.rs
nested-return-type4.stderr adjust how closure/generator types and rvalues are printed 2023-09-21 22:20:58 +02:00
nested-return-type.rs
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 don't ICE on higher ranked hidden types 2023-08-04 15:11:09 +00:00
nested-rpit-hrtb.rs
nested-rpit-hrtb.stderr
nested-rpit-with-anonymous-lifetimes.rs
nesting.rs
no-method-suggested-traits.rs
no-method-suggested-traits.stderr Special-case item attributes in the suggestion output 2023-04-12 22:50:10 +00:00
no-trait.rs
no-trait.stderr
normalize-opaque-with-bound-vars.rs More tests 2023-06-27 21:36:15 +00:00
normalize-tait-in-const.rs update tests, adding known-bug 2023-07-27 15:51:02 +00:00
normalize-tait-in-const.stderr bless the known-bug tests 2023-09-20 03:02:14 +00:00
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 Modify primary span label for E0308 2023-01-30 20:12:19 +00:00
opaque-cast-field-access-in-future.rs Only prevent field projections into opaque types, not types containing opaque types 2023-09-25 17:41:08 +00:00
opaque-cast-field-access-in-future.stderr Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
point-to-type-err-cause-on-impl-trait-return.rs Remove return type sized check hack from hir typeck 2023-05-18 01:53:01 +00:00
point-to-type-err-cause-on-impl-trait-return.stderr Remove return type sized check hack from hir typeck 2023-05-18 01:53:01 +00:00
printing-binder.rs
printing-binder.stderr
private_unused.rs
projection-mismatch-in-impl-where-clause.rs
projection-mismatch-in-impl-where-clause.stderr Note predicate span on ImplDerivedObligation 2023-01-11 19:46:45 +00:00
projection.rs
question_mark.rs
recursive-auto-trait.rs deal with opaque types without cycling 2023-07-06 11:37:21 +02:00
recursive-generator.rs Bless tests. 2023-09-23 13:47:30 +00:00
recursive-generator.stderr Bless tests. 2023-09-23 13:47:30 +00:00
recursive-impl-trait-type-direct.rs
recursive-impl-trait-type-indirect.rs Revert duplication of tests. 2023-09-23 13:34:07 +00:00
recursive-impl-trait-type-indirect.stderr Bless tests. 2023-09-23 13:47:30 +00:00
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 Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
recursive-type-alias-impl-trait-declaration-too-subtle.rs
recursive-type-alias-impl-trait-declaration-too-subtle.stderr Handle weak type aliases by immediately resolving them to their aliased type 2023-06-22 15:51:19 +00:00
recursive-type-alias-impl-trait-declaration.rs Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
recursive-type-alias-impl-trait-declaration.stderr Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
region-escape-via-bound-contravariant-closure.rs
region-escape-via-bound-contravariant.rs
region-escape-via-bound.rs
region-escape-via-bound.stderr Label opaque type for 'captures lifetime' error message 2023-03-03 05:02:34 +00:00
return-position-impl-trait-minimal.rs
reveal-during-codegen.rs Normalize opaques during codegen in new solver 2023-07-07 16:02:25 +00:00
rpit-assoc-pair-with-lifetime.rs
rpit-not-sized.rs
rpit-not-sized.stderr
static-lifetime-return-position-impl-trait.rs accept ReStatic for RPITIT 2023-06-26 01:11:44 +09:00
static-return-lifetime-infered.rs
static-return-lifetime-infered.stderr adjust how closure/generator types and rvalues are printed 2023-09-21 22:20:58 +02: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.rs
two_tait_defining_each_other2.stderr
two_tait_defining_each_other3.rs
two_tait_defining_each_other3.stderr
two_tait_defining_each_other.rs
two_tait_defining_each_other.stderr
type_parameters_captured.rs
type_parameters_captured.stderr remove trailing dots 2023-10-08 10:06:17 +00:00
type-alias-generic-param.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
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 remove trailing dots 2023-10-08 10:06:17 +00:00
unactionable_diagnostic.rs remove trailing dots 2023-10-08 10:06:17 +00:00
unactionable_diagnostic.stderr remove trailing dots 2023-10-08 10:06:17 +00:00
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 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 migrate lifetime too 2023-06-26 19:14:49 +00:00
universal-mismatched-type.rs
universal-mismatched-type.stderr Modify primary span label for E0308 2023-01-30 20:12:19 +00:00
universal-two-impl-traits.rs
universal-two-impl-traits.stderr
unsafety-checking-cycle.rs
variance.rs Test variances of opaque captures 2023-08-28 01:05:34 +00:00
variance.stderr Test variances of opaque captures 2023-08-28 01:05:34 +00:00
wf-eval-order.rs vars are ? 2023-04-25 19:53:09 +00:00
where-allowed-2.rs
where-allowed-2.stderr Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
where-allowed.rs Tweak wording of E0562 2023-10-04 19:51:43 +00:00
where-allowed.stderr Tweak wording of E0562 2023-10-04 19:51:43 +00:00
xcrate_simple.rs
xcrate.rs