rust/tests/ui/traits
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
..
alias Revert "Suggest using Arc on !Send/!Sync types" 2023-08-28 03:16:48 -07:00
associated_type_bound
auxiliary
bound Point out if a local trait has no implementations 2023-09-10 21:20:36 +00:00
default-method
inductive-overflow Revert "Suggest using Arc on !Send/!Sync types" 2023-08-28 03:16:48 -07:00
inheritance More accurately point at arguments 2023-08-26 19:25:46 +00:00
negative-bounds
negative-impls Revert "Suggest using Arc on !Send/!Sync types" 2023-08-28 03:16:48 -07:00
new-solver Auto merge of #115843 - lcnr:bb-provisional-cache, r=compiler-errors 2023-09-29 02:09:40 +00:00
non_lifetime_binders Auto merge of #115486 - compiler-errors:dont-capture-late-pls, r=cjgillot 2023-09-20 03:34:51 +00:00
object Ensure that dyn trait bounds stay sorted 2023-09-07 06:57:08 +00:00
reservation-impl More accurately point at arguments 2023-08-26 19:25:46 +00:00
solver-cycles Don't record spans for predicates in coherence 2023-08-30 18:24:18 +00:00
suggest-dereferences Ensure that dyn trait bounds stay sorted 2023-09-07 06:57:08 +00:00
trait-upcasting
vtable
wf-object
alignment-gep-tup-like-1.rs
anon_trait_static_method_exe.rs
anon-static-method.rs
as-struct-constructor.rs
as-struct-constructor.stderr
assignability-trait.rs
assoc-type-in-superbad.rs
assoc-type-in-superbad.stderr
assoc-type-in-supertrait.rs
astconv-cycle-between-and-type.rs
augmented-assignments-trait.rs
bad-method-typaram-kind.rs
bad-method-typaram-kind.stderr Revert "Suggest using Arc on !Send/!Sync types" 2023-08-28 03:16:48 -07:00
bad-sized.rs
bad-sized.stderr
bug-7183-generics.rs
bug-7295.rs
cache-issue-18209.rs
cache-reached-depth-ice.rs
cache-reached-depth-ice.stderr
coercion-generic-bad.rs
coercion-generic-bad.stderr
coercion-generic-regions.rs
coercion-generic-regions.stderr
coercion-generic.rs
coercion.rs
composition-trivial.rs
conditional-dispatch.rs
conditional-model-fn.rs
conservative_impl_trait.rs
copy-guessing.rs
copy-guessing.stderr
copy-impl-cannot-normalize.rs
copy-impl-cannot-normalize.stderr
copy-is-not-modulo-regions.not_static.stderr
copy-is-not-modulo-regions.rs
copy-requires-self-wf.rs
cycle-cache-err-60010.rs
cycle-cache-err-60010.stderr
cycle-generic-bound.rs
cycle-type-trait.rs
deny-builtin-object-impl.current.stderr Point out if a local trait has no implementations 2023-09-10 21:20:36 +00:00
deny-builtin-object-impl.next.stderr Point out if a local trait has no implementations 2023-09-10 21:20:36 +00:00
deny-builtin-object-impl.rs
do-not-mention-type-params-by-name-in-suggestion-issue-96292.rs
do-not-mention-type-params-by-name-in-suggestion-issue-96292.stderr
dont-autoderef-ty-with-escaping-var.rs
dont-autoderef-ty-with-escaping-var.stderr Point out if a local trait has no implementations 2023-09-10 21:20:36 +00:00
duplicate-methods.rs
duplicate-methods.stderr
dyn-trait.rs
early-vtbl-resolution.rs
elaborate-type-region.rs
false-ambiguity-where-clause-builtin-bound.rs
fmt-pointer-trait.rs
fn-trait-cast-diagnostic.rs
fn-trait-cast-diagnostic.stderr
generic.rs
ice-with-dyn-pointee-errors.rs
ice-with-dyn-pointee-errors.stderr
ice-with-dyn-pointee.rs
ignore-err-impls.rs
ignore-err-impls.stderr
impl_trait_as_trait_return_position.rs
impl-1.rs
impl-1.stderr
impl-2.rs
impl-bounds-checking.rs
impl-bounds-checking.stderr Point out if a local trait has no implementations 2023-09-10 21:20:36 +00:00
impl-can-not-have-untraitful-items.rs
impl-can-not-have-untraitful-items.stderr
impl-different-num-params.rs
impl-different-num-params.stderr
impl-evaluation-order.rs
impl-for-module.rs
impl-for-module.stderr
impl-implicit-trait.rs
impl-inherent-prefer-over-trait.rs
impl-method-mismatch.rs
impl-method-mismatch.stderr
impl-object-overlap-issue-23853.rs
impl-of-supertrait-has-wrong-lifetime-parameters.rs
impl-of-supertrait-has-wrong-lifetime-parameters.stderr
impl.rs
infer-from-object-issue-26952.rs
inherent-method-order.rs
invalid_operator_trait.rs
invalid_operator_trait.stderr
issue-3683.rs
issue-3973.rs
issue-3973.stderr
issue-4107.rs
issue-6128.rs
issue-6334.rs
issue-7013.rs
issue-7013.stderr Revert "Suggest using Arc on !Send/!Sync types" 2023-08-28 03:16:48 -07:00
issue-8153.rs
issue-8153.stderr
issue-9394-inherited-calls.rs
issue-18400.rs
issue-18400.stderr
issue-18412.rs
issue-20692.rs
issue-20692.stderr
issue-22019.rs
issue-22110.rs
issue-22384.rs
issue-22384.stderr
issue-22655.rs
issue-23003-overflow.rs
issue-23003.rs
issue-23825.rs
issue-24010.rs
issue-26339.rs
issue-28576.rs
issue-28576.stderr
issue-32963.rs
issue-32963.stderr
issue-33140-hack-boundaries.rs
issue-33140-hack-boundaries.stderr
issue-33140.rs
issue-33140.stderr
issue-35869.rs
issue-35869.stderr
issue-38033.rs
issue-38404.rs
issue-38404.stderr
issue-38604.rs
issue-38604.stderr
issue-43132.rs
issue-43784-supertrait.rs
issue-43784-supertrait.stderr
issue-50480.rs
issue-50480.stderr
issue-52893.rs
issue-52893.stderr
issue-56202.rs
issue-56488.rs
issue-59029-1.rs
issue-59029-1.stderr
issue-59029-2.rs
issue-65284-suggest-generic-trait-bound.rs
issue-65284-suggest-generic-trait-bound.stderr
issue-65673.rs
issue-65673.stderr
issue-66768.rs
issue-68295.rs
issue-68295.stderr
issue-70944.rs
issue-71036.rs
issue-71036.stderr
issue-71136.rs
issue-71136.stderr
issue-72410.rs
issue-72410.stderr
issue-72455.rs
issue-75627.rs
issue-75627.stderr
issue-77982.rs
issue-77982.stderr More accurately point at arguments 2023-08-26 19:25:46 +00:00
issue-78372.rs
issue-78372.stderr
issue-78632.rs
issue-79458.rs
issue-79458.stderr
issue-82830.rs
issue-83538-tainted-cache-after-cycle.rs
issue-83538-tainted-cache-after-cycle.stderr
issue-84399-bad-fresh-caching.rs
issue-85360-eval-obligation-ice.rs
issue-85360-eval-obligation-ice.stderr
issue-85735.rs
issue-85735.stderr
issue-87558.rs
issue-87558.stderr
issue-89119.rs
issue-90195-2.rs
issue-90195.rs
issue-90662-projection-caching.rs
issue-91594.rs
issue-91594.stderr
issue-91949-hangs-on-recursion.rs
issue-91949-hangs-on-recursion.stderr adjust how closure/generator types and rvalues are printed 2023-09-21 22:20:58 +02:00
issue-92292.rs
issue-95311.rs
issue-95898.rs
issue-95898.stderr
issue-96664.rs
issue-96665.rs
issue-97576.rs
issue-97576.stderr
issue-97695-double-trivial-bound.rs
issue-99875.rs
issue-99875.stderr adjust how closure/generator types and rvalues are printed 2023-09-21 22:20:58 +02:00
issue-102989.rs
issue-102989.stderr
issue-103563.rs
issue-104322.rs
issue-105231.rs Don't record spans for predicates in coherence 2023-08-30 18:24:18 +00:00
issue-105231.stderr Don't record spans for predicates in coherence 2023-08-30 18:24:18 +00:00
issue-106072.rs
issue-106072.stderr
item-inside-macro.rs
item-privacy.rs
item-privacy.stderr
kindck-owned-contains-1.rs
map-types.rs
map-types.stderr
matching-lifetimes.rs
matching-lifetimes.stderr
method-private.rs
method-private.stderr
monad.rs
monomorphized-callees-with-ty-params-3314.rs
multidispatch1.rs
multidispatch2.rs
multidispatch-bad.rs
multidispatch-bad.stderr
multidispatch-conditional-impl-not-considered.rs
multidispatch-convert-ambig-dest.rs
multidispatch-convert-ambig-dest.stderr
multidispatch-infer-convert-target.rs
mutual-recursion-issue-75860.rs
mutual-recursion-issue-75860.stderr
no_send-struct.rs
no_send-struct.stderr Revert "Suggest using Arc on !Send/!Sync types" 2023-08-28 03:16:48 -07:00
no-fallback-multiple-impls.rs
no-fallback-multiple-impls.stderr
normalize-supertrait.rs
not-suggest-non-existing-fully-qualified-path.rs
not-suggest-non-existing-fully-qualified-path.stderr
object-does-not-impl-trait.rs
object-does-not-impl-trait.stderr Point out if a local trait has no implementations 2023-09-10 21:20:36 +00:00
object-one-type-two-traits.rs
objects-owned-object-borrowed-method-headerless.rs
operator-overloading-issue-52025.rs
overlap-not-permitted-for-builtin-trait.rs
overlap-not-permitted-for-builtin-trait.stderr
overlap-permitted-for-marker-traits.rs
param-without-lifetime-constraint.rs
param-without-lifetime-constraint.stderr
parameterized-with-bounds.rs
pointee-deduction.rs
pointee-tail-is-generic-errors.rs
pointee-tail-is-generic-errors.stderr
pointee-tail-is-generic.rs
principal-less-objects.rs
privacy.rs
project-modulo-regions.rs
project-modulo-regions.with_clause.stderr
project-modulo-regions.without_clause.stderr
region-pointer-simple.rs
resolution-in-overloaded-op.rs
resolution-in-overloaded-op.stderr
safety-fn-body.mir.stderr
safety-fn-body.rs
safety-fn-body.thir.stderr
safety-inherent-impl.rs
safety-inherent-impl.stderr
safety-ok-cc.rs
safety-ok.rs
safety-trait-impl-cc.rs
safety-trait-impl-cc.stderr
safety-trait-impl.rs
safety-trait-impl.stderr
self-without-lifetime-constraint.rs
self-without-lifetime-constraint.stderr
static-method-generic-inference.rs
static-method-generic-inference.stderr
static-method-overwriting.rs
static-outlives-a-where-clause.rs
staticness-mismatch.rs
staticness-mismatch.stderr
suggest-fully-qualified-closure.rs adjust how closure/generator types and rvalues are printed 2023-09-21 22:20:58 +02:00
suggest-fully-qualified-closure.stderr adjust how closure/generator types and rvalues are printed 2023-09-21 22:20:58 +02:00
suggest-fully-qualified-path-with-adjustment.rs
suggest-fully-qualified-path-with-adjustment.stderr
suggest-fully-qualified-path-without-adjustment.rs
suggest-fully-qualified-path-without-adjustment.stderr
suggest-where-clause.rs
suggest-where-clause.stderr More accurately point at arguments 2023-08-26 19:25:46 +00:00
superdefault-generics.rs
syntax-polarity.rs
syntax-trait-polarity.rs
syntax-trait-polarity.stderr
test-2.rs
test-2.stderr
test.rs
test.stderr
to-str.rs
track-obligations.rs
track-obligations.stderr
trait-or-new-type-instead.rs
trait-or-new-type-instead.stderr
trivial_impl2.rs
trivial_impl2.stderr
trivial_impl3.rs
trivial_impl3.stderr
trivial_impl4.rs
trivial_impl4.stderr
trivial_impl_sized.rs
trivial_impl_sized.stderr
trivial_impl.rs
trivial_impl.stderr
typeclasses-eq-example-static.rs
typeclasses-eq-example.rs
ufcs-object.rs
unsend-future.rs Bless tests. 2023-09-23 13:47:30 +00:00
unsend-future.stderr Bless tests. 2023-09-23 13:47:30 +00:00
unspecified-self-in-trait-ref.rs
unspecified-self-in-trait-ref.stderr
use-before-def.rs
vtable-res-trait-param.rs
vtable-res-trait-param.stderr Point out if a local trait has no implementations 2023-09-10 21:20:36 +00:00
where-clause-vs-impl.rs
with-bounds-default.rs
with-dst.rs
wrong-mul-method-signature.rs
wrong-mul-method-signature.stderr