about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2023-09-07 00:49:04 +0000
committerMichael Goulet <michael@errs.io>2023-09-07 01:31:33 +0000
commit7714db873e3172f34bed004ac1976cf72a54c2e9 (patch)
tree3939d090bd7295c860f790467fda243d84efb386
parent4d05da46e7154a6fc31bed3b217892d9a98cc0e3 (diff)
downloadrust-7714db873e3172f34bed004ac1976cf72a54c2e9.tar.gz
rust-7714db873e3172f34bed004ac1976cf72a54c2e9.zip
Add note
-rw-r--r--compiler/rustc_hir_analysis/messages.ftl1
-rw-r--r--compiler/rustc_hir_analysis/src/errors.rs1
-rw-r--r--tests/ui/impl-trait/in-trait/bad-item-bound-within-rpitit.stderr1
-rw-r--r--tests/ui/impl-trait/in-trait/refine.stderr4
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 + '_ {}