rust/tests/ui/traits/new-solver
bors 4400d8fce7 Auto merge of - compiler-errors:new-solver-hir-typeck-hacks, r=lcnr
Deal with unnormalized projections when structurally resolving types with new solver

1. Normalize types in `structurally_resolved_type` when the new solver is enabled
2. Normalize built-in autoderef targets in `Autoderef` when the new solver is enabled
3. Normalize-erasing-regions in `resolve_type` in writeback

This is motivated by the UI test provided, which currently fails with:

```
error[E0609]: no field `x` on type `<usize as SliceIndex<[Foo]>>::Output`
 --> <source>:9:11
  |
9 |     xs[0].x = 1;
  |           ^
```

 I'm pretty happy with the approach in (1.) and (2.) and think we'll inevitably need something like this in the long-term, but (3.) seems like a hack to me. It's a *lot* of work to add tons of new calls to every user of these typeck results though (mir build, late lints, etc). Happy to discuss further.

r? `@lcnr`
2023-05-23 04:41:44 +00:00
..
coherence
alias_eq_cant_be_furthur_normalized.rs
alias_eq_dont_use_normalizes_to_if_substs_eq.rs prioritize param-env candidates 2023-04-10 09:16:33 +02:00
alias_eq_dont_use_normalizes_to_if_substs_eq.stderr
alias_eq_simple.rs
alias_eq_substs_eq_not_intercrate.rs
alias_eq_substs_eq_not_intercrate.stderr
alias-bound-unsound.rs Make alias bounds sound in the new solver 2023-05-09 20:37:50 +00:00
alias-bound-unsound.stderr Make alias bounds sound in the new solver 2023-05-09 20:37:50 +00:00
alias-eq-in-canonical-response.rs
alias-sub.rs
async.fail.stderr
async.rs
auto-with-drop_tracking_mir.fail.stderr Adjust tests for new drop and forget lints 2023-05-10 19:36:02 +02:00
auto-with-drop_tracking_mir.rs Rename drop_ref lint to dropping_references 2023-05-21 14:16:41 +02:00
borrowck-error.rs Clone region var origins instead of taking in borrowck 2023-04-21 00:31:43 +00:00
borrowck-error.stderr Clone region var origins instead of taking in borrowck 2023-04-21 00:31:43 +00:00
builtin-fn-must-return-sized.rs
builtin-fn-must-return-sized.stderr
canonical-int-var-eq-in-response.rs
canonical-ty-var-eq-in-response.rs
cast-checks-handling-projections.rs
closure-inference-guidance.rs Closures always implement FnOnce in new solver 2023-03-30 15:11:42 +00:00
const-param-placeholder.fail.stderr Don't ICE on placeholder consts in deep reject 2023-03-29 23:28:44 +00:00
const-param-placeholder.rs Don't ICE on placeholder consts in deep reject 2023-03-29 23:28:44 +00:00
deduce-ty-from-object.rs
destruct.rs
dont-elaborate-for-projections.rs Do not consider elaborated projection predicates for objects in new solver 2023-03-29 16:13:05 +00:00
elaborate-item-bounds.rs
equating-projection-cyclically.rs
equating-projection-cyclically.stderr
exponential-trait-goals.rs Clear response values for overflow in new solver 2023-04-26 21:54:30 +00:00
exponential-trait-goals.stderr Clear response values for overflow in new solver 2023-04-26 21:54:30 +00:00
float-canonical.rs canonicalize float var as float in new solver 2023-03-30 01:15:37 +00:00
fn-trait-closure.rs
fn-trait.rs
fn-trait.stderr
generator.fail.stderr
generator.rs
higher-ranked-dyn-bounds.rs
int-var-alias-eq.rs vars are ? 2023-04-25 19:53:09 +00:00
int-var-is-send.rs Stall auto-trait assembly for int/float vars in new solver 2023-04-10 15:54:14 +00:00
iter-filter-projection.rs Add test for uniquifying regions 2023-04-14 03:22:12 +00:00
lazy-nested-obligations-1.rs
lazy-nested-obligations-2.rs
lazy-nested-obligations-3.rs
more-object-bound.rs Do not consider elaborated projection predicates for objects in new solver 2023-03-29 16:13:05 +00:00
more-object-bound.stderr Do not consider elaborated projection predicates for objects in new solver 2023-03-29 16:13:05 +00:00
negative-coherence-bounds.rs Negative coherence test 2023-04-25 05:02:39 +00:00
negative-coherence-bounds.stderr Negative coherence test 2023-04-25 05:02:39 +00:00
nested-alias-bound.rs Make alias bounds sound in the new solver 2023-05-09 20:37:50 +00:00
nested-obligations-with-bound-vars-gat.rs
normalize-param-env-1.rs
normalize-param-env-2.rs
normalize-param-env-3.rs
normalize-rcvr-for-inherent.rs Structurally normalize in the new solver 2023-05-22 21:18:20 +00:00
normalizes_to_ignores_unnormalizable_candidate.rs
normalizes_to_ignores_unnormalizable_candidate.self_infer.stderr
object-unsafety.rs
object-unsafety.stderr
param-candidate-doesnt-shadow-project.rs
param-discr-kind.rs Don't ICE on DiscriminantKind projection in new solver 2023-03-30 00:53:16 +00:00
pointee.rs Check pointee metadata correctly in ui test 2023-03-30 00:53:17 +00:00
pointer-like.rs Enforce that PointerLike requires a pointer-like ABI 2023-04-08 21:11:16 +00:00
pointer-like.stderr Enforce that PointerLike requires a pointer-like ABI 2023-04-08 21:11:16 +00:00
prefer-candidate-no-constraints.rs prioritize param-env candidates 2023-04-10 09:16:33 +02:00
prefer-param-env-on-ambiguity.rs prioritize param-env candidates 2023-04-10 09:16:33 +02:00
projection-discr-kind.rs Don't ICE on DiscriminantKind projection in new solver 2023-03-30 00:53:16 +00:00
projection-discr-kind.stderr Don't ICE on DiscriminantKind projection in new solver 2023-03-30 00:53:16 +00:00
provisional-result-done.rs
recursive-self-normalization-2.rs Report overflows gracefully with new solver 2023-04-10 16:36:30 +00:00
recursive-self-normalization-2.stderr Report overflows gracefully with new solver 2023-04-10 16:36:30 +00:00
recursive-self-normalization.rs Report overflows gracefully with new solver 2023-04-10 16:36:30 +00:00
recursive-self-normalization.stderr Report overflows gracefully with new solver 2023-04-10 16:36:30 +00:00
runaway-impl-candidate-selection.rs
runaway-impl-candidate-selection.stderr
specialization-transmute.rs
specialization-transmute.stderr
specialization-unconstrained.rs
specialization-unconstrained.stderr
stall-num-var-auto-trait.fallback.stderr Stall auto-trait assembly for int/float vars in new solver 2023-04-10 15:54:14 +00:00
stall-num-var-auto-trait.rs Stall auto-trait assembly for int/float vars in new solver 2023-04-10 15:54:14 +00:00
structural-resolve-field.rs Structurally normalize in the new solver 2023-05-22 21:18:20 +00:00
temporary-ambiguity.rs Adjust tests for new drop and forget lints 2023-05-10 19:36:02 +02:00
try-example.rs
two-projection-param-candidates-are-ambiguous.rs vars are ? 2023-04-25 19:53:09 +00:00
two-projection-param-candidates-are-ambiguous.stderr
unsafe-auto-trait-impl.rs
unsize-good.rs
upcast-right-substs.rs
upcast-wrong-substs.rs
upcast-wrong-substs.stderr