parent
5abc45982b
commit
e55fc286fc
@ -784,4 +784,55 @@ mod tests {
|
|||||||
"###
|
"###
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn completes_reexported_items_under_correct_name() {
|
||||||
|
assert_debug_snapshot!(
|
||||||
|
do_reference_completion(
|
||||||
|
r"
|
||||||
|
fn foo() {
|
||||||
|
self::m::<|>
|
||||||
|
}
|
||||||
|
|
||||||
|
mod m {
|
||||||
|
pub use super::p::wrong_fn as right_fn;
|
||||||
|
pub use super::p::WRONG_CONST as RIGHT_CONST;
|
||||||
|
pub use super::p::WrongType as RightType;
|
||||||
|
}
|
||||||
|
mod p {
|
||||||
|
fn wrong_fn() {}
|
||||||
|
const WRONG_CONST: u32 = 1;
|
||||||
|
struct WrongType {};
|
||||||
|
}
|
||||||
|
"
|
||||||
|
),
|
||||||
|
@r###"
|
||||||
|
[
|
||||||
|
CompletionItem {
|
||||||
|
label: "RIGHT_CONST",
|
||||||
|
source_range: [57; 57),
|
||||||
|
delete: [57; 57),
|
||||||
|
insert: "RIGHT_CONST",
|
||||||
|
kind: Const,
|
||||||
|
},
|
||||||
|
CompletionItem {
|
||||||
|
label: "RightType",
|
||||||
|
source_range: [57; 57),
|
||||||
|
delete: [57; 57),
|
||||||
|
insert: "RightType",
|
||||||
|
kind: Struct,
|
||||||
|
},
|
||||||
|
CompletionItem {
|
||||||
|
label: "right_fn()",
|
||||||
|
source_range: [57; 57),
|
||||||
|
delete: [57; 57),
|
||||||
|
insert: "right_fn()$0",
|
||||||
|
kind: Function,
|
||||||
|
lookup: "right_fn",
|
||||||
|
detail: "fn wrong_fn()",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
"###
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -193,11 +193,10 @@ impl Completions {
|
|||||||
name: Option<String>,
|
name: Option<String>,
|
||||||
func: hir::Function,
|
func: hir::Function,
|
||||||
) {
|
) {
|
||||||
let func_name = func.name(ctx.db);
|
|
||||||
let has_self_param = func.has_self_param(ctx.db);
|
let has_self_param = func.has_self_param(ctx.db);
|
||||||
let params = func.params(ctx.db);
|
let params = func.params(ctx.db);
|
||||||
|
|
||||||
let name = name.unwrap_or_else(|| func_name.to_string());
|
let name = name.unwrap_or_else(|| func.name(ctx.db).to_string());
|
||||||
let ast_node = func.source(ctx.db).value;
|
let ast_node = func.source(ctx.db).value;
|
||||||
let detail = function_label(&ast_node);
|
let detail = function_label(&ast_node);
|
||||||
|
|
||||||
@ -219,9 +218,9 @@ impl Completions {
|
|||||||
{
|
{
|
||||||
tested_by!(inserts_parens_for_function_calls);
|
tested_by!(inserts_parens_for_function_calls);
|
||||||
let (snippet, label) = if params.is_empty() || has_self_param && params.len() == 1 {
|
let (snippet, label) = if params.is_empty() || has_self_param && params.len() == 1 {
|
||||||
(format!("{}()$0", func_name), format!("{}()", name))
|
(format!("{}()$0", name), format!("{}()", name))
|
||||||
} else {
|
} else {
|
||||||
(format!("{}($0)", func_name), format!("{}(…)", name))
|
(format!("{}($0)", name), format!("{}(…)", name))
|
||||||
};
|
};
|
||||||
builder = builder.lookup_by(name).label(label).insert_snippet(snippet);
|
builder = builder.lookup_by(name).label(label).insert_snippet(snippet);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user