rust/tests/ui/traits/new-solver
Guillaume Gomez 4ef7257018
Rollup merge of #112442 - compiler-errors:next-solver-deduplicate-region-constraints, r=lcnr
Deduplicate identical region constraints in new solver

the new solver doesn't track whether we've already proven a goal like the fulfillment context's obligation forest does, so we may be instantiating a canonical response (and specifically, its nested region obligations) quite a few times.

This may lead to exponentially gathering up identical region constraints for things like auto traits, so let's deduplicate region constraints when in `compute_external_query_constraints`.

r? ``@lcnr``
2023-06-09 16:29:02 +02:00
..
coherence
alias_eq_cant_be_furthur_normalized.rs
alias_eq_dont_use_normalizes_to_if_substs_eq.rs Strongly prefer alias and param-env bounds 2023-05-25 03:35:14 +00:00
alias_eq_simple.rs
alias_eq_substs_eq_not_intercrate.rs Strongly prefer alias and param-env bounds 2023-05-25 03:35:14 +00:00
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
array-default.rs Normalize anon consts in new solver 2023-06-02 22:07:57 +00:00
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
const-param-placeholder.fail.stderr
const-param-placeholder.rs
deduce-ty-from-object.rs
dedup-regions.rs deduplicate identical region constraints 2023-06-08 23:38:07 +00:00
destruct.rs
dont-elaborate-for-projections.rs
dont-remap-tait-substs.rs Wait until type_of to remap HIR opaques back to their defn params 2023-05-26 14:42:52 +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
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
leak-check-coinductive-cycle.rs coinductive cycle leak check test 2023-05-30 13:04:27 +02:00
more-object-bound.rs
more-object-bound.stderr
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
normalized-const-built-in-op.rs Do fix_*_builtin_expr hacks on the writeback results 2023-06-08 03:21:13 +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
pointee.rs
pointer-like.rs
pointer-like.stderr
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
projection-discr-kind.stderr
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
slice-match-byte-lit.rs Structurally resolve correctly in check_pat_lit 2023-06-08 04:22:47 +00:00
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 Normalize anon consts in new solver 2023-06-02 22:07:57 +00:00
tait-eq-proj-2.rs Fall back to bidirectional normalizes-to if no subst-eq in alias-eq goal 2023-06-06 18:44:22 +00:00
tait-eq-proj.rs Fall back to bidirectional normalizes-to if no subst-eq in alias-eq goal 2023-06-06 18:44:22 +00:00
tait-eq-tait.rs Fall back to bidirectional normalizes-to if no subst-eq in alias-eq goal 2023-06-06 18:44:22 +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
unevaluated-const-impl-trait-ref.fails.stderr Normalize anon consts in new solver 2023-06-02 22:07:57 +00:00
unevaluated-const-impl-trait-ref.rs Normalize anon consts in new solver 2023-06-02 22:07:57 +00:00
unsafe-auto-trait-impl.rs
unsize-good.rs
upcast-right-substs.rs
upcast-wrong-substs.rs
upcast-wrong-substs.stderr