Remove const
- Add test for @ matching - Address comments
This commit is contained in:
parent
eb51abdc64
commit
ec24c09006
@ -97,6 +97,13 @@ mod tests {
|
|||||||
insert: "Z",
|
insert: "Z",
|
||||||
kind: Const,
|
kind: Const,
|
||||||
},
|
},
|
||||||
|
CompletionItem {
|
||||||
|
label: "Z",
|
||||||
|
source_range: [246; 246),
|
||||||
|
delete: [246; 246),
|
||||||
|
insert: "Z",
|
||||||
|
kind: Const,
|
||||||
|
},
|
||||||
CompletionItem {
|
CompletionItem {
|
||||||
label: "m",
|
label: "m",
|
||||||
source_range: [246; 246),
|
source_range: [246; 246),
|
||||||
@ -138,6 +145,21 @@ mod tests {
|
|||||||
insert: "E",
|
insert: "E",
|
||||||
kind: Enum,
|
kind: Enum,
|
||||||
},
|
},
|
||||||
|
CompletionItem {
|
||||||
|
label: "E",
|
||||||
|
source_range: [151; 151),
|
||||||
|
delete: [151; 151),
|
||||||
|
insert: "E",
|
||||||
|
kind: Enum,
|
||||||
|
},
|
||||||
|
CompletionItem {
|
||||||
|
label: "m!",
|
||||||
|
source_range: [151; 151),
|
||||||
|
delete: [151; 151),
|
||||||
|
insert: "m!($0)",
|
||||||
|
kind: Macro,
|
||||||
|
detail: "macro_rules! m",
|
||||||
|
},
|
||||||
]
|
]
|
||||||
"###);
|
"###);
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,6 @@ pub(super) fn complete_scope(acc: &mut Completions, ctx: &CompletionContext) {
|
|||||||
ctx.scope().process_all_names(&mut |name, res| match (ctx.is_pat_binding_and_path, &res) {
|
ctx.scope().process_all_names(&mut |name, res| match (ctx.is_pat_binding_and_path, &res) {
|
||||||
(true, ScopeDef::ModuleDef(ModuleDef::Function(..))) => (),
|
(true, ScopeDef::ModuleDef(ModuleDef::Function(..))) => (),
|
||||||
(true, ScopeDef::ModuleDef(ModuleDef::Static(..))) => (),
|
(true, ScopeDef::ModuleDef(ModuleDef::Static(..))) => (),
|
||||||
(true, ScopeDef::ModuleDef(ModuleDef::Const(..))) => (),
|
|
||||||
(true, ScopeDef::Local(..)) => (),
|
(true, ScopeDef::Local(..)) => (),
|
||||||
_ => acc.add_resolution(ctx, name.to_string(), &res),
|
_ => acc.add_resolution(ctx, name.to_string(), &res),
|
||||||
});
|
});
|
||||||
@ -27,6 +26,27 @@ mod tests {
|
|||||||
do_completion(ra_fixture, CompletionKind::Reference)
|
do_completion(ra_fixture, CompletionKind::Reference)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn bind_pat_and_path_ignore_at() {
|
||||||
|
assert_debug_snapshot!(
|
||||||
|
do_reference_completion(
|
||||||
|
r"
|
||||||
|
enum Enum {
|
||||||
|
A,
|
||||||
|
B,
|
||||||
|
}
|
||||||
|
fn quux(x: Option<Enum>) {
|
||||||
|
match x {
|
||||||
|
None => (),
|
||||||
|
Some(en<|> @ Enum::A) => (),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"
|
||||||
|
),
|
||||||
|
@r###"[]"###
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn bind_pat_and_path_ignore_ref() {
|
fn bind_pat_and_path_ignore_ref() {
|
||||||
assert_debug_snapshot!(
|
assert_debug_snapshot!(
|
||||||
|
@ -197,11 +197,11 @@ impl<'a> CompletionContext<'a> {
|
|||||||
self.is_pat_binding = true;
|
self.is_pat_binding = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if parent.and_then(ast::RecordFieldPatList::cast).is_none() {
|
if parent.and_then(ast::RecordFieldPatList::cast).is_none()
|
||||||
let bind_pat_string = bind_pat.syntax().to_string();
|
&& bind_pat.pat().is_none()
|
||||||
if !bind_pat_string.contains("ref ") && !bind_pat_string.contains(" @ ") {
|
&& !bind_pat.is_ref()
|
||||||
self.is_pat_binding_and_path = true;
|
{
|
||||||
}
|
self.is_pat_binding_and_path = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if is_node::<ast::Param>(name.syntax()) {
|
if is_node::<ast::Param>(name.syntax()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user