Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/tests/item_list.rs')
-rw-r--r--crates/ide-completion/src/tests/item_list.rs133
1 files changed, 133 insertions, 0 deletions
diff --git a/crates/ide-completion/src/tests/item_list.rs b/crates/ide-completion/src/tests/item_list.rs
index ac32649d4f..0b2be0265f 100644
--- a/crates/ide-completion/src/tests/item_list.rs
+++ b/crates/ide-completion/src/tests/item_list.rs
@@ -106,6 +106,40 @@ fn in_item_list_after_attr() {
}
#[test]
+fn in_item_list_after_inner_attr() {
+ check_with_base_items(
+ r#"#![attr] $0"#,
+ expect![[r#"
+ ma makro!(…) macro_rules! makro
+ md module
+ kw async
+ kw const
+ kw crate::
+ kw enum
+ kw extern
+ kw fn
+ kw impl
+ kw impl for
+ kw mod
+ kw pub
+ kw pub(crate)
+ kw pub(super)
+ kw self::
+ kw static
+ kw struct
+ kw trait
+ kw type
+ kw union
+ kw unsafe
+ kw use
+ sn macro_rules
+ sn tfn (Test function)
+ sn tmod (Test module)
+ "#]],
+ )
+}
+
+#[test]
fn in_qualified_path() {
check_with_base_items(
r#"crate::$0"#,
@@ -177,6 +211,105 @@ fn after_visibility_unsafe() {
}
#[test]
+fn after_abi() {
+ check_with_base_items(
+ r#"extern "C" $0"#,
+ expect![[r#"
+ kw async
+ kw const
+ kw enum
+ kw fn
+ kw impl
+ kw impl for
+ kw mod
+ kw pub
+ kw pub(crate)
+ kw pub(super)
+ kw static
+ kw struct
+ kw trait
+ kw type
+ kw union
+ kw unsafe
+ kw use
+ "#]],
+ );
+ check_with_base_items(
+ r#"extern "C" f$0"#,
+ expect![[r#"
+ kw async
+ kw const
+ kw enum
+ kw fn
+ kw impl
+ kw impl for
+ kw mod
+ kw pub
+ kw pub(crate)
+ kw pub(super)
+ kw static
+ kw struct
+ kw trait
+ kw type
+ kw union
+ kw unsafe
+ kw use
+ "#]],
+ );
+}
+
+#[test]
+fn after_extern_token() {
+ check_with_base_items(
+ r#"extern $0"#,
+ expect![[r#"
+ kw async
+ kw const
+ kw crate
+ kw enum
+ kw fn
+ kw impl
+ kw impl for
+ kw mod
+ kw pub
+ kw pub(crate)
+ kw pub(super)
+ kw static
+ kw struct
+ kw trait
+ kw type
+ kw union
+ kw unsafe
+ kw use
+ "#]],
+ );
+ check_with_base_items(
+ r#"extern cr$0"#,
+ expect![[r#"
+ kw async
+ kw const
+ kw crate
+ kw enum
+ kw fn
+ kw impl
+ kw impl for
+ kw mod
+ kw pub
+ kw pub(crate)
+ kw pub(super)
+ kw static
+ kw struct
+ kw trait
+ kw type
+ kw union
+ kw unsafe
+ kw use
+ "#]],
+ );
+ check_edit("crate", "extern $0", "extern crate $0;");
+}
+
+#[test]
fn in_impl_assoc_item_list() {
check_with_base_items(
r#"impl Struct { $0 }"#,