diff --git a/tests/ui/diagnostic_namespace/do_not_recommend/do_not_apply_attribute_without_feature_flag.rs b/tests/ui/diagnostic_namespace/do_not_recommend/do_not_apply_attribute_without_feature_flag.rs
new file mode 100644
index 00000000000..5548fa2f52e
--- /dev/null
+++ b/tests/ui/diagnostic_namespace/do_not_recommend/do_not_apply_attribute_without_feature_flag.rs
@@ -0,0 +1,21 @@
+#![allow(unknown_or_malformed_diagnostic_attributes)]
+
+trait Foo {}
+
+#[diagnostic::do_not_recommend]
+impl Foo for (A,) {}
+
+#[diagnostic::do_not_recommend]
+impl Foo for (A, B) {}
+
+#[diagnostic::do_not_recommend]
+impl Foo for (A, B, C) {}
+
+impl Foo for i32 {}
+
+fn check(a: impl Foo) {}
+
+fn main() {
+ check(());
+ //~^ ERROR the trait bound `(): Foo` is not satisfied
+}
diff --git a/tests/ui/diagnostic_namespace/do_not_recommend/do_not_apply_attribute_without_feature_flag.stderr b/tests/ui/diagnostic_namespace/do_not_recommend/do_not_apply_attribute_without_feature_flag.stderr
new file mode 100644
index 00000000000..e56af28f3fb
--- /dev/null
+++ b/tests/ui/diagnostic_namespace/do_not_recommend/do_not_apply_attribute_without_feature_flag.stderr
@@ -0,0 +1,21 @@
+error[E0277]: the trait bound `(): Foo` is not satisfied
+ --> $DIR/do_not_apply_attribute_without_feature_flag.rs:19:11
+ |
+LL | check(());
+ | ----- ^^ the trait `Foo` is not implemented for `()`
+ | |
+ | required by a bound introduced by this call
+ |
+ = help: the following other types implement trait `Foo`:
+ (A, B)
+ (A, B, C)
+ (A,)
+note: required by a bound in `check`
+ --> $DIR/do_not_apply_attribute_without_feature_flag.rs:16:18
+ |
+LL | fn check(a: impl Foo) {}
+ | ^^^ required by this bound in `check`
+
+error: aborting due to 1 previous error
+
+For more information about this error, try `rustc --explain E0277`.