Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/tests/attribute.rs')
-rw-r--r--crates/ide-completion/src/tests/attribute.rs78
1 files changed, 76 insertions, 2 deletions
diff --git a/crates/ide-completion/src/tests/attribute.rs b/crates/ide-completion/src/tests/attribute.rs
index 32d3b50f23..411902f111 100644
--- a/crates/ide-completion/src/tests/attribute.rs
+++ b/crates/ide-completion/src/tests/attribute.rs
@@ -30,6 +30,8 @@ pub struct Foo(#[m$0] i32);
at deprecated
at derive macro derive
at derive(…)
+ at diagnostic::do_not_recommend
+ at diagnostic::on_unimplemented
at doc = "…"
at doc(alias = "…")
at doc(hidden)
@@ -472,13 +474,13 @@ fn attr_on_trait() {
at cfg_attr(…)
at deny(…)
at deprecated
+ at diagnostic::on_unimplemented
at doc = "…"
at doc(alias = "…")
at doc(hidden)
at expect(…)
at forbid(…)
at must_use
- at must_use
at no_mangle
at warn(…)
kw crate::
@@ -498,6 +500,7 @@ fn attr_on_impl() {
at cfg_attr(…)
at deny(…)
at deprecated
+ at diagnostic::do_not_recommend
at doc = "…"
at doc(alias = "…")
at doc(hidden)
@@ -533,6 +536,76 @@ fn attr_on_impl() {
}
#[test]
+fn attr_with_qualifier() {
+ check(
+ r#"#[diagnostic::$0] impl () {}"#,
+ expect![[r#"
+ at allow(…)
+ at automatically_derived
+ at cfg(…)
+ at cfg_attr(…)
+ at deny(…)
+ at deprecated
+ at do_not_recommend
+ at doc = "…"
+ at doc(alias = "…")
+ at doc(hidden)
+ at expect(…)
+ at forbid(…)
+ at must_use
+ at no_mangle
+ at warn(…)
+ "#]],
+ );
+ check(
+ r#"#[diagnostic::$0] trait Foo {}"#,
+ expect![[r#"
+ at allow(…)
+ at cfg(…)
+ at cfg_attr(…)
+ at deny(…)
+ at deprecated
+ at doc = "…"
+ at doc(alias = "…")
+ at doc(hidden)
+ at expect(…)
+ at forbid(…)
+ at must_use
+ at no_mangle
+ at on_unimplemented
+ at warn(…)
+ "#]],
+ );
+}
+
+#[test]
+fn attr_diagnostic_on_unimplemented() {
+ check(
+ r#"#[diagnostic::on_unimplemented($0)] trait Foo {}"#,
+ expect![[r#"
+ ba label = "…"
+ ba message = "…"
+ ba note = "…"
+ "#]],
+ );
+ check(
+ r#"#[diagnostic::on_unimplemented(message = "foo", $0)] trait Foo {}"#,
+ expect![[r#"
+ ba label = "…"
+ ba note = "…"
+ "#]],
+ );
+ check(
+ r#"#[diagnostic::on_unimplemented(note = "foo", $0)] trait Foo {}"#,
+ expect![[r#"
+ ba label = "…"
+ ba message = "…"
+ ba note = "…"
+ "#]],
+ );
+}
+
+#[test]
fn attr_on_extern_block() {
check(
r#"#[$0] extern {}"#,
@@ -619,7 +692,6 @@ fn attr_on_fn() {
at link_name = "…"
at link_section = "…"
at must_use
- at must_use
at no_mangle
at panic_handler
at proc_macro
@@ -649,6 +721,8 @@ fn attr_in_source_file_end() {
at deny(…)
at deprecated
at derive(…)
+ at diagnostic::do_not_recommend
+ at diagnostic::on_unimplemented
at doc = "…"
at doc(alias = "…")
at doc(hidden)