Skip to content

Commit

Permalink
Auto merge of rust-lang#12906 - cynecx:fix-completions, r=Veykril
Browse files Browse the repository at this point in the history
fix: complete path of existing record expr
  • Loading branch information
bors committed Jul 29, 2022
2 parents ec3586e + 902fd6d commit fb5e496
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 1 deletion.
2 changes: 2 additions & 0 deletions crates/ide-completion/src/context/analysis.rs
Original file line number Diff line number Diff line change
Expand Up @@ -939,10 +939,12 @@ impl<'a> CompletionContext<'a> {
ast::Meta(meta) => make_path_kind_attr(meta)?,
ast::Visibility(it) => PathKind::Vis { has_in_token: it.in_token().is_some() },
ast::UseTree(_) => PathKind::Use,
ast::RecordExpr(it) => make_path_kind_expr(it.into()),
_ => return None,
}
}
},
ast::RecordExpr(it) => make_path_kind_expr(it.into()),
_ => return None,
}
};
Expand Down
19 changes: 19 additions & 0 deletions crates/ide-completion/src/tests/expression.rs
Original file line number Diff line number Diff line change
Expand Up @@ -651,3 +651,22 @@ fn main() {
"]],
);
}

#[test]
fn complete_record_expr_path() {
check(
r#"
struct Zulu;
impl Zulu {
fn test() -> Self { }
}
fn boi(val: Zulu) { }
fn main() {
boi(Zulu:: $0 {});
}
"#,
expect![[r#"
fn test() fn() -> Zulu
"#]],
);
}
2 changes: 1 addition & 1 deletion crates/parser/src/grammar/paths.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ fn path_for_qualifier(
mut qual: CompletedMarker,
) -> CompletedMarker {
loop {
let use_tree = matches!(p.nth(2), T![*] | T!['{']);
let use_tree = mode == Mode::Use && matches!(p.nth(2), T![*] | T!['{']);
if p.at(T![::]) && !use_tree {
let path = qual.precede(p);
p.bump(T![::]);
Expand Down

0 comments on commit fb5e496

Please sign in to comment.