diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2019-07-19 12:15:55 +0100 |
---|---|---|
committer | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2019-07-19 12:15:55 +0100 |
commit | f209843e31af7f0e0212aa28ffec2efad2a70c6f (patch) | |
tree | 548227da78a3bea644f57714d075410c0bdf7469 /crates/ra_ide_api/src/completion/complete_postfix.rs | |
parent | 58d4983ba5745975446d60f2886d96f8d2adf0f2 (diff) | |
parent | d4a66166c002f0a49e41d856a49cb5685ac93202 (diff) |
Merge #1545
1545: migrate ra_syntax to the new rowan API r=matklad a=matklad
Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_ide_api/src/completion/complete_postfix.rs')
-rw-r--r-- | crates/ra_ide_api/src/completion/complete_postfix.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/crates/ra_ide_api/src/completion/complete_postfix.rs b/crates/ra_ide_api/src/completion/complete_postfix.rs index 4f5062214..c75b1c159 100644 --- a/crates/ra_ide_api/src/completion/complete_postfix.rs +++ b/crates/ra_ide_api/src/completion/complete_postfix.rs | |||
@@ -11,7 +11,8 @@ use ra_text_edit::TextEditBuilder; | |||
11 | 11 | ||
12 | fn postfix_snippet(ctx: &CompletionContext, label: &str, detail: &str, snippet: &str) -> Builder { | 12 | fn postfix_snippet(ctx: &CompletionContext, label: &str, detail: &str, snippet: &str) -> Builder { |
13 | let edit = { | 13 | let edit = { |
14 | let receiver_range = ctx.dot_receiver.expect("no receiver available").syntax().range(); | 14 | let receiver_range = |
15 | ctx.dot_receiver.as_ref().expect("no receiver available").syntax().range(); | ||
15 | let delete_range = TextRange::from_to(receiver_range.start(), ctx.source_range().end()); | 16 | let delete_range = TextRange::from_to(receiver_range.start(), ctx.source_range().end()); |
16 | let mut builder = TextEditBuilder::default(); | 17 | let mut builder = TextEditBuilder::default(); |
17 | builder.replace(delete_range, snippet.to_string()); | 18 | builder.replace(delete_range, snippet.to_string()); |
@@ -38,9 +39,9 @@ fn is_bool_or_unknown(ty: Option<Ty>) -> bool { | |||
38 | } | 39 | } |
39 | 40 | ||
40 | pub(super) fn complete_postfix(acc: &mut Completions, ctx: &CompletionContext) { | 41 | pub(super) fn complete_postfix(acc: &mut Completions, ctx: &CompletionContext) { |
41 | if let Some(dot_receiver) = ctx.dot_receiver { | 42 | if let Some(dot_receiver) = &ctx.dot_receiver { |
42 | let receiver_text = dot_receiver.syntax().text().to_string(); | 43 | let receiver_text = dot_receiver.syntax().text().to_string(); |
43 | let receiver_ty = ctx.analyzer.type_of(ctx.db, dot_receiver); | 44 | let receiver_ty = ctx.analyzer.type_of(ctx.db, &dot_receiver); |
44 | if is_bool_or_unknown(receiver_ty) { | 45 | if is_bool_or_unknown(receiver_ty) { |
45 | postfix_snippet(ctx, "if", "if expr {}", &format!("if {} {{$0}}", receiver_text)) | 46 | postfix_snippet(ctx, "if", "if expr {}", &format!("if {} {{$0}}", receiver_text)) |
46 | .add_to(acc); | 47 | .add_to(acc); |