94bc9c737e
Show more information when multiple `impl`s apply - When there are `impl`s without type params, show only those (to avoid showing overly generic `impl`s). ``` error[E0283]: type annotations needed --> $DIR/multiple-impl-apply.rs:34:9 | LL | let y = x.into(); | ^ ---- type must be known at this point | note: multiple `impl`s satisfying `_: From<Baz>` found --> $DIR/multiple-impl-apply.rs:14:1 | LL | impl From<Baz> for Bar { | ^^^^^^^^^^^^^^^^^^^^^^ ... LL | impl From<Baz> for Foo { | ^^^^^^^^^^^^^^^^^^^^^^ = note: required for `Baz` to implement `Into<_>` help: consider giving `y` an explicit type | LL | let y: /* Type */ = x.into(); | ++++++++++++ ``` - Lower the importance of `T: Sized`, `T: WellFormed` and coercion errors, to prioritize more relevant errors. The pre-existing deduplication logic deals with hiding redundant errors better that way, and we show errors with more metadata that is useful to the user. - Show `<SelfTy as Trait>::assoc_fn` suggestion in more cases. ``` error[E0790]: cannot call associated function on trait without specifying the corresponding `impl` type --> $DIR/cross-return-site-inference.rs:38:16 | LL | return Err(From::from("foo")); | ^^^^^^^^^^ cannot call associated function of trait | help: use a fully-qualified path to a specific available implementation | LL | return Err(</* self type */ as From>::from("foo")); | +++++++++++++++++++ + ``` Fix #88284. |
||
---|---|---|
.. | ||
ascription | ||
auxiliary | ||
type-check | ||
binding-assigned-block-without-tail-expression.rs | ||
binding-assigned-block-without-tail-expression.stderr | ||
closure-with-wrong-borrows.rs | ||
closure-with-wrong-borrows.stderr | ||
issue-58355.rs | ||
issue-58355.stderr | ||
issue-67690-type-alias-bound-diagnostic-crash.rs | ||
issue-67690-type-alias-bound-diagnostic-crash.stderr | ||
issue-91268.rs | ||
issue-91268.stderr | ||
issue-94187-verbose-type-name.rs | ||
issue-100584.rs | ||
issue-100584.stderr | ||
issue-101866.rs | ||
issue-101866.stderr | ||
issue-102598.rs | ||
issue-102598.stderr | ||
issue-103271.rs | ||
issue-103271.stderr | ||
missing-let-in-binding-2.fixed | ||
missing-let-in-binding-2.rs | ||
missing-let-in-binding-2.stderr | ||
missing-let-in-binding-3.rs | ||
missing-let-in-binding-3.stderr | ||
missing-let-in-binding-4.rs | ||
missing-let-in-binding-4.stderr | ||
missing-let-in-binding.fixed | ||
missing-let-in-binding.rs | ||
missing-let-in-binding.stderr | ||
option-ref-advice.rs | ||
option-ref-advice.stderr | ||
subtyping-opaque-type.rs | ||
type-alias-bounds.rs | ||
type-alias-bounds.stderr | ||
type-annotation-needed.rs | ||
type-annotation-needed.stderr | ||
type-arg-out-of-scope.rs | ||
type-arg-out-of-scope.stderr | ||
type-ascription-instead-of-initializer.rs | ||
type-ascription-instead-of-initializer.stderr | ||
type-ascription-instead-of-statement-end.rs | ||
type-ascription-instead-of-statement-end.stderr | ||
type-ascription-precedence.rs | ||
type-ascription-precedence.stderr | ||
type-ascription-soundness.rs | ||
type-ascription-soundness.stderr | ||
type-ascription-with-fn-call.fixed | ||
type-ascription-with-fn-call.rs | ||
type-ascription-with-fn-call.stderr | ||
type-ascription.rs | ||
type-check-defaults.rs | ||
type-check-defaults.stderr | ||
type-dependent-def-issue-49241.rs | ||
type-dependent-def-issue-49241.stderr | ||
type-error-break-tail.rs | ||
type-error-break-tail.stderr | ||
type-mismatch-multiple.rs | ||
type-mismatch-multiple.stderr | ||
type-mismatch-same-crate-name.rs | ||
type-mismatch-same-crate-name.stderr | ||
type-mismatch.rs | ||
type-mismatch.stderr | ||
type-parameter-defaults-referencing-Self-ppaux.rs | ||
type-parameter-defaults-referencing-Self-ppaux.stderr | ||
type-parameter-defaults-referencing-Self.rs | ||
type-parameter-defaults-referencing-Self.stderr | ||
type-parameter-names.rs | ||
type-parameter-names.stderr | ||
type-params-in-different-spaces-1.rs | ||
type-params-in-different-spaces-1.stderr | ||
type-params-in-different-spaces-2.rs | ||
type-params-in-different-spaces-2.stderr | ||
type-params-in-different-spaces-3.rs | ||
type-params-in-different-spaces-3.stderr | ||
type-path-err-node-types.rs | ||
type-path-err-node-types.stderr | ||
type-recursive-box-shadowed.rs | ||
type-recursive-box-shadowed.stderr | ||
type-recursive.rs | ||
type-recursive.stderr | ||
type-shadow.rs | ||
type-shadow.stderr | ||
type-unsatisfiable.rs | ||
type-unsatisfiable.usage.stderr | ||
wrong-call-return-type-due-to-generic-arg.rs | ||
wrong-call-return-type-due-to-generic-arg.stderr |