rust/tests/ui/traits
Esteban Küber 8c04999226 On object safety error, mention new enum as alternative
When we encounter a `dyn Trait` that isn't object safe, look for its
implementors. If there's one, mention using it directly If there are
less than 9, mention the possibility of creating a new enum and using
that instead.

Account for object unsafe `impl Trait on dyn Trait {}`.  Make a
distinction between public and sealed traits.

Fix #80194.
2023-10-29 23:55:46 +00:00
..
alias Revert "Suggest using Arc on !Send/!Sync types" 2023-08-28 03:16:48 -07:00
associated_type_bound Do not suggest 'Trait<Assoc=arg>' when in trait impl 2023-10-25 09:11:16 +05:30
auxiliary Add some tests around where bounds on associated items and their lack of effect on impls 2023-06-26 09:56:28 +00:00
bound 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
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 Don't compute trait super bounds unless they're positive 2023-05-04 17:24:13 +00:00
negative-impls Revert "Suggest using Arc on !Send/!Sync types" 2023-08-28 03:16:48 -07:00
new-solver 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
non_lifetime_binders On object safety error, mention new enum as alternative 2023-10-29 23:55:46 +00:00
object On object safety error, mention new enum as alternative 2023-10-29 23:55:46 +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 Avoid side-effects from try_coerce when suggesting borrowing LHS of cast 2023-08-19 22:12:51 +00:00
vtable Don't emit useless vptrs for marker traits 2023-07-19 12:06:31 +00:00
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 update tests 2023-06-19 15:39:55 +02:00
cache-reached-depth-ice.stderr update tests 2023-06-19 15:39:55 +02:00
coercion-generic-bad.rs
coercion-generic-bad.stderr Point out the actual mismatch error 2023-10-02 23:14:29 +00:00
coercion-generic-regions.rs
coercion-generic-regions.stderr Tweak E0597 2023-01-15 19:46:20 +00:00
coercion-generic.rs
coercion.rs
composition-trivial.rs
conditional-dispatch.rs
conditional-model-fn.rs
conservative_impl_trait.rs
copy-guessing.rs Rename drop_copy lint to dropping_copy_types 2023-05-21 13:37:32 +02:00
copy-guessing.stderr Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
copy-impl-cannot-normalize.rs
copy-impl-cannot-normalize.stderr Delay normalization bugs instead of reporting them 2023-01-13 23:19:36 +00:00
copy-is-not-modulo-regions.not_static.stderr may not => cannot 2023-03-08 00:00:18 +00:00
copy-is-not-modulo-regions.rs may not => cannot 2023-03-08 00:00:18 +00:00
copy-requires-self-wf.rs Rebase and move UI tests 2023-01-13 23:06:29 +00:00
cycle-cache-err-60010.rs
cycle-cache-err-60010.stderr add test 2023-05-19 10:44:38 +02:00
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 Merge attrs, better validation 2023-06-20 04:38:55 +00:00
do-not-mention-type-params-by-name-in-suggestion-issue-96292.rs Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
do-not-mention-type-params-by-name-in-suggestion-issue-96292.stderr Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
dont-autoderef-ty-with-escaping-var.rs Use erased self type when autoderefing for trait error suggestion 2023-07-23 14:13:52 -04:00
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 remove invalid ignore-pretty 2023-04-03 09:24:11 +02:00
early-vtbl-resolution.rs
elaborate-type-region.rs
false-ambiguity-where-clause-builtin-bound.rs
fmt-pointer-trait.rs
fn-trait-cast-diagnostic.rs Add note when FnPtr vs. FnDef impl trait 2023-01-14 10:37:56 +00:00
fn-trait-cast-diagnostic.stderr Add note when FnPtr vs. FnDef impl trait 2023-01-14 10:37:56 +00:00
generic.rs
ice-with-dyn-pointee-errors.rs Add passing & failing test for bultin dyn trait generation 2023-06-27 17:52:26 +09:30
ice-with-dyn-pointee-errors.stderr Add passing & failing test for bultin dyn trait generation 2023-06-27 17:52:26 +09:30
ice-with-dyn-pointee.rs Add passing & failing test for bultin dyn trait generation 2023-06-27 17:52:26 +09:30
ignore-err-impls.rs Filter impl and where-clause candidates that reference errors 2023-01-11 20:03:29 +00:00
ignore-err-impls.stderr Render missing generics suggestion verbosely 2023-01-12 22:04:30 +00:00
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 Rename drop_copy lint to dropping_copy_types 2023-05-21 13:37:32 +02:00
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 Point at impl self type for impl wf obligations 2023-01-12 20:44:47 +00:00
impl.rs
infer-from-object-issue-26952.rs vars are ? 2023-04-25 19:53:09 +00:00
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 Note predicate span on ImplDerivedObligation 2023-01-11 19:46:45 +00:00
issue-18412.rs
issue-20692.rs
issue-20692.stderr Note base types of coercion 2023-05-12 00:10:52 +00:00
issue-22019.rs
issue-22110.rs
issue-22384.rs Move test files 2023-04-20 15:06:17 -03:00
issue-22384.stderr Move test files 2023-04-20 15:06:17 -03:00
issue-22655.rs
issue-23003-overflow.rs
issue-23003.rs
issue-23825.rs
issue-24010.rs Implement selection for unsize for better coercion behavior 2023-07-08 03:41:22 +00:00
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 Extend impl's def_span to include where clauses 2023-10-09 11:47:02 +00:00
issue-33140.rs
issue-33140.stderr
issue-35869.rs
issue-35869.stderr
issue-38033.rs
issue-38404.rs Don't use implied trait predicates in gather_explicit_predicates_of 2023-05-01 15:45:28 +00:00
issue-38404.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
issue-38604.rs
issue-38604.stderr On object safety error, mention new enum as alternative 2023-10-29 23:55:46 +00:00
issue-43132.rs
issue-43784-supertrait.rs
issue-43784-supertrait.stderr Keep obligation chain when elaborating obligations 2023-01-13 18:20:23 +00:00
issue-50480.rs may not => cannot 2023-03-08 00:00:18 +00:00
issue-50480.stderr may not => cannot 2023-03-08 00:00:18 +00:00
issue-52893.rs
issue-52893.stderr Tweak wording of type errors involving type params 2023-10-18 23:53:18 +00:00
issue-56202.rs
issue-56488.rs
issue-59029-1.rs
issue-59029-1.stderr Tweak wording 2023-10-13 19:18:46 +00:00
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 Move issue 29181, 2804, 17431, 66768 2023-08-24 20:44:08 +03:00
issue-68295.rs
issue-68295.stderr Modify primary span label for E0308 2023-01-30 20:12:19 +00:00
issue-70944.rs
issue-71036.rs
issue-71036.stderr
issue-71136.rs
issue-71136.stderr Tweak output for 'add line' suggestion 2023-04-12 22:50:10 +00:00
issue-72410.rs
issue-72410.stderr
issue-72455.rs
issue-75627.rs
issue-75627.stderr Render missing generics suggestion verbosely 2023-01-12 22:04:30 +00:00
issue-77982.rs Fix windows test that has different stderr output 2023-10-06 15:51:04 +00:00
issue-77982.stderr Fix windows test that has different stderr output 2023-10-06 15:51:04 +00:00
issue-78372.rs
issue-78372.stderr Special-case item attributes in the suggestion output 2023-04-12 22:50:10 +00:00
issue-78632.rs
issue-79458.rs
issue-79458.stderr
issue-82830.rs
issue-83538-tainted-cache-after-cycle.rs update tests 2023-06-19 15:39:55 +02:00
issue-83538-tainted-cache-after-cycle.stderr update tests 2023-06-19 15:39:55 +02:00
issue-84399-bad-fresh-caching.rs
issue-85360-eval-obligation-ice.rs update tests 2023-06-19 15:39:55 +02:00
issue-85360-eval-obligation-ice.stderr update tests 2023-06-19 15:39:55 +02:00
issue-85735.rs
issue-85735.stderr
issue-87558.rs
issue-87558.stderr feat: implement better error for manual impl of Fn* traits 2023-03-10 20:32:24 +13:00
issue-89119.rs
issue-90195-2.rs
issue-90195.rs
issue-90662-projection-caching.rs
issue-91594.rs
issue-91594.stderr Point at HIR types when impl trait ref doesn't normalize 2023-01-12 20:44:47 +00:00
issue-91949-hangs-on-recursion.rs write-long-types-to-disk: update tests 2023-07-25 12:08:44 +01:00
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 fix: Unexpected trait bound not satisfied in HRTB 2023-02-13 19:39:44 +08:00
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 Emits E0599 when meeting MyTrait::missing_method 2023-05-17 16:59:39 +08:00
issue-106072.stderr Emits E0599 when meeting MyTrait::missing_method 2023-05-17 16:59:39 +08:00
item-inside-macro.rs
item-privacy.rs diagnostics: update test cases to refer to assoc fn with self as method 2023-02-22 08:40:47 -07:00
item-privacy.stderr On object safety error, mention new enum as alternative 2023-10-29 23:55:46 +00:00
kindck-owned-contains-1.rs
map-types.rs
map-types.stderr Note base types of coercion 2023-05-12 00:10:52 +00:00
matching-lifetimes.rs
matching-lifetimes.stderr
method-private.rs
method-private.stderr Special-case item attributes in the suggestion output 2023-04-12 22:50:10 +00:00
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 Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
multidispatch-convert-ambig-dest.stderr Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
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 Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
not-suggest-non-existing-fully-qualified-path.stderr Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
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 update tests 2023-06-19 15:39:55 +02:00
project-modulo-regions.with_clause.stderr update tests 2023-06-19 15:39:55 +02:00
project-modulo-regions.without_clause.stderr update tests 2023-06-19 15:39:55 +02:00
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 Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
suggest-fully-qualified-path-with-adjustment.rs Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
suggest-fully-qualified-path-with-adjustment.stderr Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
suggest-fully-qualified-path-without-adjustment.rs Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
suggest-fully-qualified-path-without-adjustment.stderr Reorder fullfillment errors to keep more interesting ones first 2023-10-04 02:04:14 +00:00
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 diagnostics: remove inconsistent English article "this" from E0107 2023-02-23 10:27:06 -07:00
test-2.stderr On object safety error, mention new enum as alternative 2023-10-29 23:55:46 +00:00
test.rs
test.stderr
to-str.rs
track-obligations.rs Add tests 2023-01-13 18:20:24 +00:00
track-obligations.stderr Add tests 2023-01-13 18:20:24 +00:00
trait-or-new-type-instead.rs
trait-or-new-type-instead.stderr Tighter spans for bad inherent impl types 2023-02-13 18:41:18 +00:00
trivial_impl2.rs Add some tests around where bounds on associated items and their lack of effect on impls 2023-06-26 09:56:28 +00:00
trivial_impl2.stderr Add some tests around where bounds on associated items and their lack of effect on impls 2023-06-26 09:56:28 +00:00
trivial_impl3.rs Add some tests around where bounds on associated items and their lack of effect on impls 2023-06-26 09:56:28 +00:00
trivial_impl3.stderr Add some tests around where bounds on associated items and their lack of effect on impls 2023-06-26 09:56:28 +00:00
trivial_impl4.rs Add some tests around where bounds on associated items and their lack of effect on impls 2023-06-26 09:56:28 +00:00
trivial_impl4.stderr Add some tests around where bounds on associated items and their lack of effect on impls 2023-06-26 09:56:28 +00:00
trivial_impl_sized.rs Add some tests around where bounds on associated items and their lack of effect on impls 2023-06-26 09:56:28 +00:00
trivial_impl_sized.stderr Add some tests around where bounds on associated items and their lack of effect on impls 2023-06-26 09:56:28 +00:00
trivial_impl.rs Add some tests around where bounds on associated items and their lack of effect on impls 2023-06-26 09:56:28 +00:00
trivial_impl.stderr Add some tests around where bounds on associated items and their lack of effect on impls 2023-06-26 09:56:28 +00:00
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 Move some UI tests into subdirectories 2023-04-02 19:42:30 -04:00
wrong-mul-method-signature.stderr Move some UI tests into subdirectories 2023-04-02 19:42:30 -04:00