Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/tests/expression.rs')
-rw-r--r--crates/ide-completion/src/tests/expression.rs70
1 files changed, 70 insertions, 0 deletions
diff --git a/crates/ide-completion/src/tests/expression.rs b/crates/ide-completion/src/tests/expression.rs
index 1c325bd8f5..ea1b7ad787 100644
--- a/crates/ide-completion/src/tests/expression.rs
+++ b/crates/ide-completion/src/tests/expression.rs
@@ -1320,3 +1320,73 @@ fn main() {
"#]],
);
}
+
+#[test]
+fn macro_that_ignores_completion_marker() {
+ check(
+ r#"
+macro_rules! helper {
+ ($v:ident) => {};
+}
+
+macro_rules! m {
+ ($v:ident) => {{
+ helper!($v);
+ $v
+ }};
+}
+
+fn main() {
+ let variable = "test";
+ m!(v$0);
+}
+ "#,
+ expect![[r#"
+ ct CONST Unit
+ en Enum Enum
+ fn function() fn()
+ fn main() fn()
+ lc variable &str
+ ma helper!(…) macro_rules! helper
+ ma m!(…) macro_rules! m
+ ma makro!(…) macro_rules! makro
+ md module
+ sc STATIC Unit
+ st Record Record
+ st Tuple Tuple
+ st Unit Unit
+ un Union Union
+ ev TupleV(…) TupleV(u32)
+ bt u32 u32
+ kw async
+ kw const
+ kw crate::
+ kw enum
+ kw extern
+ kw false
+ kw fn
+ kw for
+ kw if
+ kw if let
+ kw impl
+ kw let
+ kw loop
+ kw match
+ kw mod
+ kw self::
+ kw static
+ kw struct
+ kw trait
+ kw true
+ kw type
+ kw union
+ kw unsafe
+ kw use
+ kw while
+ kw while let
+ sn macro_rules
+ sn pd
+ sn ppd
+ "#]],
+ );
+}