rust/tests/ui/type-alias-impl-trait
bors 9ab0749ce3 Auto merge of #112875 - compiler-errors:negative-coherence-rework, r=lcnr
Rework negative coherence to properly consider impls that only partly overlap

This PR implements a modified negative coherence that handles impls that only have partial overlap.

It does this by:
1. taking both impl trait refs, instantiating them with infer vars
2. equating both trait refs
3. taking the equated trait ref (which represents the two impls' intersection), and resolving any vars
4. plugging all remaining infer vars with placeholder types

these placeholder-plugged trait refs can then be used normally with the new trait solver, since we no longer have to worry about the issue with infer vars in param-envs.

We use the **new trait solver** to reason correctly about unnormalized trait refs (due to deferred projection equality), since this avoid having to normalize anything under param-envs with infer vars in them.

This PR then additionally:
* removes the `FnPtr` knowable hack by implementing proper negative `FnPtr` trait bounds for rigid types.

---

An example:

Consider these two partially overlapping impls:

```
impl<T, U> PartialEq<&U> for &T where T: PartialEq<U> {}
impl<F> PartialEq<F> for F where F: FnPtr {}
```

Under the old algorithm, we would take one of these impls and replace it with infer vars, then try unifying it with the other impl under identity substitutions. This is not possible in either direction, since it either sets `T = U`, or tries to equate `F = &?0`.

Under the new algorithm, we try to unify `?0: PartialEq<?0>` with `&?1: PartialEq<&?2>`. This gives us `?0 = &?1 = &?2` and thus `?1 = ?2`. The intersection of these two trait refs therefore looks like: `&?1: PartialEq<&?1>`. After plugging this with placeholders, we get a trait ref that looks like `&!0: PartialEq<&!0>`, with the first impl having substs `?T = ?U = !0` and the second having substs `?F = &!0`[^1].

Then we can take the param-env from the first impl, and try to prove the negated where clause of the second.

We know that `&!0: !FnPtr` never holds, since it's a rigid type that is also not a fn ptr, we successfully detect that these impls may never overlap.

[^1]: For the purposes of this example, I just ignored lifetimes, since it doesn't really matter.
2023-10-26 10:57:21 +00:00
..
auxiliary Don't do intra-pass validation on MIR shims 2023-08-19 18:47:08 +00:00
argument-types.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
assoc-projection-ice.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
assoc-type-const.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
assoc-type-lifetime-unconstrained.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
assoc-type-lifetime-unconstrained.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
assoc-type-lifetime.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
associated-type-alias-impl-trait.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
associated-type-impl-trait-lifetime.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
auto-trait-leakage.rs Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
auto-trait-leakage2.rs Revert "Suggest using Arc on !Send/!Sync types" 2023-08-28 03:16:48 -07:00
auto-trait-leakage2.stderr Revert "Suggest using Arc on !Send/!Sync types" 2023-08-28 03:16:48 -07:00
auto-trait-leakage3.rs More precisely detect cycle errors from type_of on opaque 2023-08-27 22:03:16 +00:00
auto-trait-leakage3.stderr More precisely detect cycle errors from type_of on opaque 2023-08-27 22:03:16 +00:00
bound_reduction.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
bound_reduction2.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
bound_reduction2.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
bounds-are-checked-2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
bounds-are-checked-2.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
bounds-are-checked.rs Convert a hard-warning about named static lifetimes into lint "unused_lifetimes" 2023-02-22 09:44:26 +08:00
bounds-are-checked.stderr Convert a hard-warning about named static lifetimes into lint "unused_lifetimes" 2023-02-22 09:44:26 +08:00
bounds-are-checked3.rs Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
bounds-are-checked3.stderr Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
bounds.rs Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
broken_mir.rs Turns out opaque types can have hidden types registered during mir validation 2023-07-27 08:23:06 +00:00
closure_args.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
closure_args2.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
closure_parent_substs.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
closure_wf_outlives.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
closure_wf_outlives.stderr remove trailing dots 2023-10-08 10:06:17 +00:00
closures_in_branches.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
closures_in_branches.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence.rs Fix tests 2023-08-12 17:18:46 +00:00
coherence.stderr Fix tests 2023-08-12 17:18:46 +00:00
coherence_cross_crate.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence_cross_crate.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
coherence_different_hidden_ty.rs coherence: don't add hidden types for opaques 2023-05-30 12:40:35 +02:00
coherence_different_hidden_ty.stderr coherence: don't add hidden types for opaques 2023-05-30 12:40:35 +02:00
coherence_generalization.rs Fix tests 2023-08-12 17:18:46 +00:00
collect_hidden_types.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
constrain_inputs.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
constrain_inputs.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
constrain_inputs_unsound.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
constrain_inputs_unsound.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cross_crate_ice.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cross_crate_ice2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cross_inference.rs update tests 2023-07-03 09:12:15 +02:00
cross_inference_pattern_bug.rs Strip OpaqueCast during RevealAll. 2023-09-28 16:13:38 +00:00
cross_inference_pattern_bug_no_type.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
cross_inference_rpit.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
debug-ty-with-weak.rs Continue folding in query normalizer on weak aliases 2023-06-18 20:56:30 +00:00
declared_but_never_defined.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
declared_but_never_defined.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
declared_but_not_defined_in_scope.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
declared_but_not_defined_in_scope.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
defined-by-user-annotation.rs allow opaques to be defined by trait queries 2023-07-14 12:35:33 +00:00
defining-use-submodule.rs Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
destructure_tait-ice-113594.rs Remove unnecessary generator-check, which also fixes the issue within async functions 2023-09-28 16:13:38 +00:00
destructure_tait-layout_of-ice-113594.rs Strip OpaqueCast during RevealAll. 2023-09-28 16:13:38 +00:00
destructuring.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
different_defining_uses.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
different_defining_uses.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
different_defining_uses_never_type-2.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
different_defining_uses_never_type-2.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
different_defining_uses_never_type-3.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
different_defining_uses_never_type-3.stderr Check opaques for mismatch during writeback 2023-05-22 23:33:34 +00:00
different_defining_uses_never_type.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
different_defining_uses_never_type.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
different_defining_uses_never_type2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
different_defining_uses_never_type3.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
different_defining_uses_never_type3.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
different_lifetimes_defining_uses.rs Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
different_lifetimes_defining_uses.stderr Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
drop-shim-relates-opaque-issue-114375.rs Don't do intra-pass validation on MIR shims 2023-08-19 18:47:08 +00:00
escaping-bound-var.rs Correctly deny late-bound lifetimes from parent in anon consts and TAITs 2023-09-05 20:20:55 +00:00
escaping-bound-var.stderr Correctly deny late-bound lifetimes from parent in anon consts and TAITs 2023-09-05 20:20:55 +00:00
fallback.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
fallback.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
field-types.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
future.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
future.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_different_defining_uses.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_different_defining_uses.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_lifetime_param.rs Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
generic_duplicate_lifetime_param.stderr Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
generic_duplicate_param_use.rs Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
generic_duplicate_param_use.stderr Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
generic_duplicate_param_use2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use2.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use3.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use3.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use4.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use4.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use5.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use5.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use6.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use6.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use7.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use8.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use8.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use9.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use9.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_duplicate_param_use10.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_lifetime_param.rs Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
generic_nondefining_use.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
generic_nondefining_use.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
generic_not_used.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_not_used.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
generic_type_does_not_live_long_enough.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
generic_type_does_not_live_long_enough.stderr remove trailing dots 2023-10-08 10:06:17 +00:00
generic_underconstrained.rs 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_underconstrained.stderr 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_underconstrained2.rs 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_underconstrained2.stderr 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
hidden_behind_projection_behind_struct_field.rs Only walk the identity substituted version of struct fields 2023-06-22 15:51:20 +00:00
hidden_behind_projection_behind_struct_field.stderr Only walk the identity substituted version of struct fields 2023-06-22 15:51:20 +00:00
hidden_behind_struct_field.rs Only walk the identity substituted version of struct fields 2023-06-22 15:51:20 +00:00
hidden_behind_struct_field2.rs Only walk the identity substituted version of struct fields 2023-06-22 15:51:20 +00:00
hidden_type_mismatch.rs Double check that hidden types match the expected hidden type 2023-07-21 13:19:36 +00:00
hidden_type_mismatch.stderr Double check that hidden types match the expected hidden type 2023-07-21 13:19:36 +00:00
higher_kinded_params.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
higher_kinded_params2.rs Remove normalization from opaque_types_defined_by 2023-07-07 13:17:00 +00:00
higher_kinded_params2.stderr Remove normalization from opaque_types_defined_by 2023-07-07 13:17:00 +00:00
higher_kinded_params3.rs Remove normalization from opaque_types_defined_by 2023-07-07 13:17:00 +00:00
higher_kinded_params3.stderr Remove normalization from opaque_types_defined_by 2023-07-07 13:17:00 +00:00
impl-trait-in-type-alias-with-bad-substs.rs Don't substitute a GAT that has mismatched generics in OpaqueTypeCollector 2023-06-21 16:33:17 +00:00
impl-trait-in-type-alias-with-bad-substs.stderr Don't substitute a GAT that has mismatched generics in OpaqueTypeCollector 2023-06-21 16:33:17 +00:00
impl-with-unconstrained-param.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
impl-with-unconstrained-param.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl_for_weak_alias.rs Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
impl_for_weak_alias.stderr Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
impl_trait_for_generic_tait.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl_trait_for_same_tait.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl_trait_for_same_tait.stderr Make things work by using the new solver 2023-10-23 23:35:27 +00:00
impl_trait_for_tait.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl_trait_for_tait_bound.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl_trait_for_tait_bound.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl_trait_for_tait_bound2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
impl_trait_for_tait_bound2.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
implied_bounds.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
implied_bounds.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
implied_bounds2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
implied_bounds3.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
implied_bounds_closure.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
implied_bounds_closure.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
implied_bounds_from_types.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
implied_bounds_from_types.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
implied_lifetime_wf_check.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
implied_lifetime_wf_check3.rs Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
implied_lifetime_wf_check3.stderr remove trailing dots 2023-10-08 10:06:17 +00:00
implied_lifetime_wf_check4_static.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
implied_lifetime_wf_check4_static.stderr remove trailing dots 2023-10-08 10:06:17 +00:00
imply_bounds_from_bounds.rs Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
imply_bounds_from_bounds_param.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
imply_bounds_from_bounds_param.stderr Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
incoherent-assoc-imp-trait.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
incoherent-assoc-imp-trait.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
incomplete-inference.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
incomplete-inference.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
indirect-recursion-issue-112047.rs Bless tests. 2023-09-23 13:47:30 +00:00
indirect-recursion-issue-112047.stderr Strip OpaqueCast during RevealAll. 2023-09-28 16:13:38 +00:00
inference-cycle.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
inference-cycle.stderr More precisely detect cycle errors from type_of on opaque 2023-08-27 22:03:16 +00:00
invalid_impl_trait_in_assoc_ty.rs Require impl Trait in associated types to appear in method signatures 2023-05-12 10:24:03 +00:00
invalid_impl_trait_in_assoc_ty.stderr Point to argument/return type instead of the whole function header 2023-06-22 15:00:12 +00:00
issue-52843-closure-constrain.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-52843-closure-constrain.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-52843.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-52843.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-53092-2.rs delay E0512 as a bug by checking the references_error 2023-01-17 09:20:15 -08:00
issue-53092-2.stderr More precisely detect cycle errors from type_of on opaque 2023-08-27 22:03:16 +00:00
issue-53092.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-53092.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-53096.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-53096.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-53398-cyclic-types.rs Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
issue-53598.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-53598.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-53678-coroutine-and-const-fn.rs Rename lots of files that had generator in their name 2023-10-20 21:14:02 +00:00
issue-55099-lifetime-inference.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-57188-associate-impl-capture.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-57611-trait-alias.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-57700.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-57700.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-57807-associated-type.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-57961.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
issue-57961.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-58662-coroutine-with-lifetime.rs Rename lots of files that had generator in their name 2023-10-20 21:14:02 +00:00
issue-58662-simplified.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
issue-58887.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-58951-2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-58951.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-60371.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-60371.stderr Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-60407.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-60407.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-60564-working.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-60564.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
issue-60564.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-60662.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-60662.stdout Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-62000-associate-impl-trait-lifetimes.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-63263-closure-return.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
issue-63279.rs Remove save-analysis. 2023-02-16 15:14:45 +11:00
issue-63279.stderr adjust how closure/generator types and rvalues are printed 2023-09-21 22:20:58 +02:00
issue-63355.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-63677-type-alias-coherence.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-65384.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-65384.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-65679-inst-opaque-ty-from-val-twice.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
issue-65918.rs Unignore issue-65918 2023-04-15 15:23:32 -07:00
issue-66580-closure-coherence.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-67844-nested-opaque.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-68368-non-defining-use-2.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
issue-68368-non-defining-use-2.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-68368-non-defining-use.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
issue-68368-non-defining-use.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-69136-inner-lifetime-resolve-error.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
issue-69136-inner-lifetime-resolve-error.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-69136-inner-lifetime-resolve-ok.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-69323.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-70121.rs Remove normalization from opaque_types_defined_by 2023-07-07 13:17:00 +00:00
issue-70121.stderr Remove normalization from opaque_types_defined_by 2023-07-07 13:17:00 +00:00
issue-72793.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-74244.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-74244.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-74280.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-74280.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-74761-2.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-74761-2.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-74761.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-74761.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-76202-trait-impl-for-tait.rs Don't consider TAIT normalizable to hidden ty if it would result in impossible item bounds 2023-06-19 14:49:56 +00:00
issue-77179.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
issue-77179.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-78450.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-84660-trait-impl-for-tait.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-84660-unsoundness.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-84660-unsoundness.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-87455-static-lifetime-ice.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-89686.rs Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
issue-89686.stderr Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
issue-89952.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-90400-1.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-90400-1.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-90400-2.rs Split out a separate feature gate for impl trait in associated types 2023-04-12 16:17:31 +00:00
issue-90400-2.stderr Note predicate span on ImplDerivedObligation 2023-01-11 19:46:45 +00:00
issue-93411.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-94429.rs Rename Gen to Coro in tests 2023-10-20 21:14:02 +00:00
issue-94429.stderr Rename lots of files that had generator in their name 2023-10-20 21:14:02 +00:00
issue-96572-unconstrained-mismatch.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-96572-unconstrained-mismatch.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-96572-unconstrained.rs Perform OpaqueCast field projection on HIR, too. 2023-07-24 15:19:26 +00:00
issue-98604.rs Tweak E0271 wording 2023-01-30 21:51:35 +00:00
issue-98604.stderr Note base types of coercion 2023-05-12 00:10:52 +00:00
issue-98608.rs Tweak E0271 wording 2023-01-30 21:51:35 +00:00
issue-98608.stderr Note base types of coercion 2023-05-12 00:10:52 +00:00
issue-101750.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-104817.rs Don't treat closures from other crates as local 2023-01-19 11:29:40 +00:00
issue-104817.stock.stderr Don't treat closures from other crates as local 2023-01-19 11:29:40 +00:00
issue-109054.rs Add a regression test for #109054 2023-07-06 02:45:54 +09:00
issue-109054.stderr Add a regression test for #109054 2023-07-06 02:45:54 +09:00
match-unification.rs Make hidden type registration opt-in, so that each site can be reviewed on its own and we have the right defaults for trait solvers 2023-02-21 14:50:51 +00:00
missing_lifetime_bound.rs Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
missing_lifetime_bound.stderr Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
multi-error.rs Treat opaque types failing the signature defining scope check as defining, as we already errored and can hide subsequent errors this way. 2023-06-22 15:36:42 +00:00
multi-error.stderr Re-use error code for duplicate error 2023-06-22 15:51:14 +00:00
multiple-def-uses-in-one-fn-infer.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
multiple-def-uses-in-one-fn-infer.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
multiple-def-uses-in-one-fn-lifetimes.rs Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
multiple-def-uses-in-one-fn-lifetimes.stderr Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
multiple-def-uses-in-one-fn-pass.rs Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
multiple-def-uses-in-one-fn.rs Wait until type_of to remap HIR opaques back to their defn params 2023-05-26 14:42:52 +00:00
multiple-def-uses-in-one-fn.stderr Wait until type_of to remap HIR opaques back to their defn params 2023-05-26 14:42:52 +00:00
multiple-def-uses-in-one-fn2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
multiple-def-uses-in-one-fn2.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
multiple-def-uses-in-one-fn3.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
multiple-def-uses-in-one-fn3.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
multiple_definitions.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
mututally-recursive-overflow.rs Detect cycle errors hidden by opaques during monomorphization 2023-09-13 17:35:44 +00:00
mututally-recursive-overflow.stderr Detect cycle errors hidden by opaques during monomorphization 2023-09-13 17:35:44 +00:00
nested-impl-trait-in-tait.rs Account for nested impl Trait in TAIT 2023-09-21 17:47:09 +00:00
nested-impl-trait-in-tait.stderr Account for nested impl Trait in TAIT 2023-09-21 17:47:09 +00:00
nested-rpit-with-lifetimes.rs Double check that hidden types match the expected hidden type 2023-07-21 13:19:36 +00:00
nested-tait-hrtb.rs Paper over an accidental regression 2023-09-14 15:16:48 +00:00
nested-tait-hrtb.stderr Paper over an accidental regression 2023-09-14 15:16:48 +00:00
nested-tait-inference.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
nested-tait-inference.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
nested-tait-inference2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
nested-tait-inference2.stderr Don't sort strings right after we just sorted by types 2023-06-27 23:31:06 +00:00
nested-tait-inference3.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
nested-tait-inference3.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
nested.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
nested.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
nested_in_closure.rs Treat closures as part of their parent 2023-07-07 13:17:00 +00:00
nested_type_alias_impl_trait.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
nested_type_alias_impl_trait.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
never_reveal_concrete_type.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
no_inferrable_concrete_type.rs delay E0512 as a bug by checking the references_error 2023-01-17 09:20:15 -08:00
no_inferrable_concrete_type.stderr delay E0512 as a bug by checking the references_error 2023-01-17 09:20:15 -08:00
no_revealing_outside_defining_module.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
no_revealing_outside_defining_module.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
non-defining-method.rs Treat opaque types failing the signature defining scope check as defining, as we already errored and can hide subsequent errors this way. 2023-06-22 15:36:42 +00:00
non-defining-method.stderr Re-use error code for duplicate error 2023-06-22 15:51:14 +00:00
normalize-alias-type.rs move subtyper change reveal_all 2023-10-05 18:56:30 +03:00
normalize-hidden-types.current.stderr instantiate hidden types in root universe 2023-06-24 13:00:15 +00:00
normalize-hidden-types.rs instantiate hidden types in root universe 2023-06-24 13:00:15 +00:00
not-matching-trait-refs-isnt-defining.rs Additional test demonstrating check for full trait ref 2023-06-21 16:41:52 +00:00
not-matching-trait-refs-isnt-defining.stderr Point to argument/return type instead of the whole function header 2023-06-22 15:00:12 +00:00
not_a_defining_use.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
not_a_defining_use.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
not_well_formed.fixed Suggest trait bounds for used associated type on type param 2023-10-13 19:13:56 +00:00
not_well_formed.rs Suggest trait bounds for used associated type on type param 2023-10-13 19:13:56 +00:00
not_well_formed.stderr Tweak wording 2023-10-13 19:18:46 +00:00
obligation_ice.rs Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
outlives-bound-var.rs add test for ICE fix 2023-01-19 15:31:59 +03:00
privacy.rs Replace old private-in-public diagnostic with type privacy lints 2023-08-02 13:40:28 +03:00
privacy.stderr Replace old private-in-public diagnostic with type privacy lints 2023-08-02 13:40:28 +03:00
recursive-fn-tait.rs Add test for 113326 2023-10-16 18:23:12 +00:00
recursive-fn-tait.stderr Add test for 113326 2023-10-16 18:23:12 +00:00
recursive-tait-conflicting-defn-2.rs Add additional test 2023-07-18 15:56:03 +00:00
recursive-tait-conflicting-defn-2.stderr Add additional test 2023-07-18 15:56:03 +00:00
recursive-tait-conflicting-defn.rs Relax recursive opaque type check 2023-07-18 15:56:03 +00:00
recursive-tait-conflicting-defn.stderr Relax recursive opaque type check 2023-07-18 15:56:03 +00:00
reveal_local.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
reveal_local.stderr More precisely detect cycle errors from type_of on opaque 2023-08-27 22:03:16 +00:00
rpit_tait_equality_in_canonical_query.current.stderr revert rust-lang/rust#114586 2023-10-18 06:19:04 +00:00
rpit_tait_equality_in_canonical_query.rs revert rust-lang/rust#114586 2023-10-18 06:19:04 +00:00
rpit_tait_equality_in_canonical_query_2.rs revert rust-lang/rust#114586 2023-10-18 06:19:04 +00:00
self-referential-2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
self-referential-2.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
self-referential-3.rs Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
self-referential-3.stderr Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
self-referential-4.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
self-referential-4.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
self-referential.rs Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
self-referential.stderr Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
self_implication.rs Revert "Auto merge of #102417 - oli-obk:opaque_lifetimes2, r=jackh726" 2023-08-30 11:06:46 +00:00
static-const-types.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
structural-match-no-leak.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
structural-match-no-leak.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
structural-match.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
structural-match.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
tait-normalize.rs move subtyper change reveal_all 2023-10-05 18:56:30 +03:00
type-alias-impl-trait-assoc-dyn.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-impl-trait-assoc-impl-trait.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-impl-trait-const.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-impl-trait-fn-type.rs Tweak wording of E0562 2023-10-04 19:51:43 +00:00
type-alias-impl-trait-fn-type.stderr Tweak wording of E0562 2023-10-04 19:51:43 +00:00
type-alias-impl-trait-fns.rs Add AliasKind::Weak for type aliases. 2023-06-16 19:39:48 +00:00
type-alias-impl-trait-sized.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-impl-trait-struct.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-impl-trait-tuple.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-impl-trait-unconstrained-lifetime.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-unconstrained-lifetime.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-impl-trait-with-cycle-error.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-impl-trait-with-cycle-error.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-impl-trait-with-cycle-error2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-impl-trait-with-cycle-error2.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-impl-trait-with-no-traits.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-impl-trait-with-no-traits.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-impl-trait.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-impl-trait2.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type-alias-nested-impl-trait.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
type_of_a_let.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
type_of_a_let.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
unbounded_opaque_type.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unconstrained-impl-param.rs Fix tests 2023-08-12 17:18:46 +00:00
unconstrained-impl-param.stderr Fix tests 2023-08-12 17:18:46 +00:00
under-binder.rs don't replace opaque types under binders with infer vars 2023-08-06 12:08:32 +00:00
under-binder.stderr don't replace opaque types under binders with infer vars 2023-08-06 12:08:32 +00:00
underconstrained_generic.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
underconstrained_generic.stderr Note predicate span on ImplDerivedObligation 2023-01-11 19:46:45 +00:00
underconstrained_lifetime.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
underconstrained_lifetime.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
unnameable_type.rs Test that we cannot use trait impl methods arguments as defining uses 2023-01-11 14:00:25 -08:00
unnameable_type.stderr Handle weak type aliases by immediately resolving them to their aliased type 2023-06-22 15:51:19 +00:00
unused_generic_param.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
variance.rs Correctly deny late-bound lifetimes from parent in anon consts and TAITs 2023-09-05 20:20:55 +00:00
variance.stderr Correctly deny late-bound lifetimes from parent in anon consts and TAITs 2023-09-05 20:20:55 +00:00
weird-return-types.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
wf-check-fn-def.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
wf-check-fn-def.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
wf-check-fn-ptrs.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
wf-check-rpit-lifetimes.rs Stop using identity args for opaque type wf checks and instead load the args from the single use of a RPIT in its parent function's return type 2023-08-08 09:39:42 +00:00
wf-in-associated-type.fail.stderr remove trailing dots 2023-10-08 10:06:17 +00:00
wf-in-associated-type.rs use implied bounds when checking opaque types 2023-05-07 01:41:20 +03:00
wf-nested.fail.stderr remove trailing dots 2023-10-08 10:06:17 +00:00
wf-nested.pass_sound.stderr remove trailing dots 2023-10-08 10:06:17 +00:00
wf-nested.rs use implied bounds when checking opaque types 2023-05-07 01:41:20 +03:00
wf_check_closures.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
wf_check_closures.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00