rust/tests/ui/traits/new-solver
bors 60bb5192d1 Auto merge of #115843 - lcnr:bb-provisional-cache, r=compiler-errors
new solver: remove provisional cache

The provisional cache is a performance optimization if there are large, interleaving cycles. Such cycles generally do not exist. It is incredibly complex and unsound in all trait solvers which have one: the old solver, chalk, and the new solver ([link](https://github.com/rust-lang/rust/blob/master/tests/ui/traits/new-solver/cycles/inductive-not-on-stack.rs)).

Given the assumption that it is not perf-critical and also incredibly complex, remove it from the new solver, only checking whether a goal is on the stack. While writing this, I uncovered two additional soundness bugs, see the inline comments for them.

r? `@compiler-errors`
2023-09-29 02:09:40 +00:00
..
assembly add and move trait solver cycle tests 2023-08-10 14:18:31 +02:00
coherence update tests 2023-09-21 08:17:58 +02:00
cycles remove provisional cache 2023-09-18 17:01:29 +02:00
generalize change to known bug 2023-08-18 23:59:49 +02:00
overflow add non-regression test for issue 115351 2023-08-29 19:03:08 +00:00
alias_eq_cant_be_furthur_normalized.rs
alias_eq_dont_use_normalizes_to_if_substs_eq.rs
alias_eq_simple.rs
alias_eq_substs_eq_not_intercrate.rs
alias_eq_substs_eq_not_intercrate.stderr update tests 2023-09-21 08:17:58 +02:00
alias-bound-preference.rs
alias-bound-unsound.rs
alias-bound-unsound.stderr
alias-eq-in-canonical-response.rs
alias-sub.rs
array-default.rs
async.fail.stderr adjust how closure/generator types and rvalues are printed 2023-09-21 22:20:58 +02:00
async.rs
auto-with-drop_tracking_mir.fail.stderr Revert "Suggest using Arc on !Send/!Sync types" 2023-08-28 03:16:48 -07:00
auto-with-drop_tracking_mir.rs Bless tests. 2023-09-23 13:47:30 +00:00
borrowck-error.rs
borrowck-error.stderr
builtin-fn-must-return-sized.rs
builtin-fn-must-return-sized.stderr Point at appropriate type parameter in more trait bound errors 2023-08-26 01:07:05 +00:00
canonical-int-var-eq-in-response.rs
canonical-ty-var-eq-in-response.rs
canonicalize-effect-var.rs Canonicalize effect vars in new solver 2023-09-15 05:11:16 +00:00
cast-checks-handling-projections.rs
closure-inference-guidance.rs
closure-substs-ambiguity.rs
const-param-placeholder.fail.stderr
const-param-placeholder.rs
deduce-ty-from-object.rs
dedup-regions.rs
destruct.rs
dont-coerce-infer-to-dyn.rs
dont-elaborate-for-projections.rs
dont-ice-on-assoc-projection.rs Don't ICE on associated type projection without feature gate 2023-09-03 19:43:58 +00:00
dont-ice-on-assoc-projection.stderr Don't ICE on associated type projection without feature gate 2023-09-03 19:43:58 +00:00
dont-loop-fulfill-on-region-constraints.rs
dont-normalize-proj-with-error.rs
dont-normalize-proj-with-error.stderr
dont-remap-tait-substs.rs
dont-type_of-tait-in-defining-scope.not_send.stderr Point at appropriate type parameter in more trait bound errors 2023-08-26 01:07:05 +00:00
dont-type_of-tait-in-defining-scope.rs
dyn-any-dont-prefer-impl.rs add and move trait solver cycle tests 2023-08-10 14:18:31 +02:00
elaborate-item-bounds.rs
equating-projection-cyclically.rs
equating-projection-cyclically.stderr
escaping-bound-vars-in-writeback-normalization.rs
float-canonical.rs
fn-trait-closure.rs
fn-trait.rs
fn-trait.stderr
generator.fail.stderr adjust how closure/generator types and rvalues are printed 2023-09-21 22:20:58 +02:00
generator.rs
higher-ranked-dyn-bounds.rs
int-var-alias-eq.rs
int-var-is-send.rs
iter-filter-projection.rs
lazy-nested-obligations-1.rs
lazy-nested-obligations-2.rs Resolve target type of coercion 2023-08-07 19:06:18 +00:00
lazy-nested-obligations-3.rs
member-constraints-in-root-universe.rs
more-object-bound.rs
more-object-bound.stderr Resolve target type of coercion 2023-08-07 19:06:18 +00:00
negative-coherence-bounds.rs
negative-coherence-bounds.stderr
nested-alias-bound.rs
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
normalize-unsize-rhs.rs
normalized-const-built-in-op.rs
normalizes_to_ignores_unnormalizable_candidate.rs
normalizes_to_ignores_unnormalizable_candidate.self_infer.stderr
object-soundness-requires-generalization.rs
object-unsafety.rs
object-unsafety.stderr
opportunistic-region-resolve.rs
param-candidate-doesnt-shadow-project.rs
param-discr-kind.rs
pointee.rs
pointer-like.rs
pointer-like.stderr
prefer-candidate-no-constraints.rs
prefer-param-env-on-ambiguity.rs
projection-discr-kind.rs
projection-discr-kind.stderr Point out if a local trait has no implementations 2023-09-10 21:20:36 +00:00
slice-match-byte-lit.rs
specialization-transmute.rs
specialization-transmute.stderr
specialization-unconstrained.rs
specialization-unconstrained.stderr More accurately point at arguments 2023-08-26 19:25:46 +00:00
stall-num-var-auto-trait.fallback.stderr
stall-num-var-auto-trait.rs
structural-resolve-field.rs
tait-eq-proj-2.rs
tait-eq-proj.rs
tait-eq-tait.rs
temporary-ambiguity.rs
trait-upcast-lhs-needs-normalization.rs
try-example.rs
two-projection-param-candidates-are-ambiguous.rs
two-projection-param-candidates-are-ambiguous.stderr Point at appropriate type parameter in more trait bound errors 2023-08-26 01:07:05 +00:00
unevaluated-const-impl-trait-ref.fails.stderr
unevaluated-const-impl-trait-ref.rs
unsafe-auto-trait-impl.rs
unsize-although-ambiguous.rs
unsize-good.rs
upcast-right-substs.rs
upcast-wrong-substs.rs
upcast-wrong-substs.stderr
winnow-specializing-impls.rs