diff options
| author | Michael Goulet <michael@errs.io> | 2023-09-07 00:49:04 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2023-09-07 01:31:33 +0000 |
| commit | 7714db873e3172f34bed004ac1976cf72a54c2e9 (patch) | |
| tree | 3939d090bd7295c860f790467fda243d84efb386 | |
| parent | 4d05da46e7154a6fc31bed3b217892d9a98cc0e3 (diff) | |
| download | rust-7714db873e3172f34bed004ac1976cf72a54c2e9.tar.gz rust-7714db873e3172f34bed004ac1976cf72a54c2e9.zip | |
Add note
| -rw-r--r-- | compiler/rustc_hir_analysis/messages.ftl | 1 | ||||
| -rw-r--r-- | compiler/rustc_hir_analysis/src/errors.rs | 1 | ||||
| -rw-r--r-- | tests/ui/impl-trait/in-trait/bad-item-bound-within-rpitit.stderr | 1 | ||||
| -rw-r--r-- | tests/ui/impl-trait/in-trait/refine.stderr | 4 |
4 files changed, 7 insertions, 0 deletions
diff --git a/compiler/rustc_hir_analysis/messages.ftl b/compiler/rustc_hir_analysis/messages.ftl index 6a08fc528d7..50da2278312 100644 --- a/compiler/rustc_hir_analysis/messages.ftl +++ b/compiler/rustc_hir_analysis/messages.ftl @@ -226,6 +226,7 @@ hir_analysis_rpitit_refined = impl trait in impl method signature does not match .suggestion = replace the return type so that it matches the trait .label = return type from trait method defined here .unmatched_bound_label = this bound is stronger than that defined on the trait + .note = add `#[allow(refining_impl_trait)]` if it is intended for this to be part of the public API of this crate hir_analysis_self_in_impl_self = `Self` is not valid in the self type of an impl block diff --git a/compiler/rustc_hir_analysis/src/errors.rs b/compiler/rustc_hir_analysis/src/errors.rs index a1b306edd64..7614913f4bf 100644 --- a/compiler/rustc_hir_analysis/src/errors.rs +++ b/compiler/rustc_hir_analysis/src/errors.rs @@ -921,6 +921,7 @@ pub struct UnusedAssociatedTypeBounds { #[derive(LintDiagnostic)] #[diag(hir_analysis_rpitit_refined)] +#[note] pub(crate) struct ReturnPositionImplTraitInTraitRefined<'tcx> { #[suggestion(applicability = "maybe-incorrect", code = "{pre}{return_ty}{post}")] pub impl_return_span: Span, diff --git a/tests/ui/impl-trait/in-trait/bad-item-bound-within-rpitit.stderr b/tests/ui/impl-trait/in-trait/bad-item-bound-within-rpitit.stderr index c0e07e94dab..a5fb338ea4e 100644 --- a/tests/ui/impl-trait/in-trait/bad-item-bound-within-rpitit.stderr +++ b/tests/ui/impl-trait/in-trait/bad-item-bound-within-rpitit.stderr @@ -21,6 +21,7 @@ LL | fn iter(&self) -> impl '_ + Iterator<Item = Self::Item<'_>>; LL | fn iter(&self) -> impl 'a + Iterator<Item = I::Item<'a>> { | ^^ this bound is stronger than that defined on the trait | + = note: add `#[allow(refining_impl_trait)]` if it is intended for this to be part of the public API of this crate = note: `#[warn(refining_impl_trait)]` on by default help: replace the return type so that it matches the trait | diff --git a/tests/ui/impl-trait/in-trait/refine.stderr b/tests/ui/impl-trait/in-trait/refine.stderr index 65dfdf869e4..29aa08e25bb 100644 --- a/tests/ui/impl-trait/in-trait/refine.stderr +++ b/tests/ui/impl-trait/in-trait/refine.stderr @@ -7,6 +7,7 @@ LL | fn bar() -> impl Sized; LL | fn bar() -> impl Copy {} | ^^^^ this bound is stronger than that defined on the trait | + = note: add `#[allow(refining_impl_trait)]` if it is intended for this to be part of the public API of this crate note: the lint level is defined here --> $DIR/refine.rs:2:9 | @@ -26,6 +27,7 @@ LL | fn bar() -> impl Sized; LL | fn bar() {} | ^^^^^^^^ | + = note: add `#[allow(refining_impl_trait)]` if it is intended for this to be part of the public API of this crate help: replace the return type so that it matches the trait | LL | fn bar() -> impl Sized {} @@ -40,6 +42,7 @@ LL | fn bar() -> impl Sized; LL | fn bar() -> () {} | ^^ | + = note: add `#[allow(refining_impl_trait)]` if it is intended for this to be part of the public API of this crate help: replace the return type so that it matches the trait | LL | fn bar() -> impl Sized {} @@ -54,6 +57,7 @@ LL | fn bar<'a>(&'a self) -> impl Sized + 'a; LL | fn bar(&self) -> impl Copy + '_ {} | ^^^^ this bound is stronger than that defined on the trait | + = note: add `#[allow(refining_impl_trait)]` if it is intended for this to be part of the public API of this crate help: replace the return type so that it matches the trait | LL | fn bar(&self) -> impl Sized + '_ {} |
