diff options
Diffstat (limited to 'crates/ra_ide_api')
-rw-r--r-- | crates/ra_ide_api/src/inlay_hints.rs | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/crates/ra_ide_api/src/inlay_hints.rs b/crates/ra_ide_api/src/inlay_hints.rs index 058cd68e2..735f3166c 100644 --- a/crates/ra_ide_api/src/inlay_hints.rs +++ b/crates/ra_ide_api/src/inlay_hints.rs | |||
@@ -2,11 +2,8 @@ use crate::{db::RootDatabase, FileId}; | |||
2 | use hir::{HirDisplay, SourceAnalyzer, Ty}; | 2 | use hir::{HirDisplay, SourceAnalyzer, Ty}; |
3 | use ra_syntax::{ | 3 | use ra_syntax::{ |
4 | algo::visit::{visitor, Visitor}, | 4 | algo::visit::{visitor, Visitor}, |
5 | ast::{ | 5 | ast::{self, AstNode, TypeAscriptionOwner}, |
6 | self, AstNode, ForExpr, IfExpr, LambdaExpr, LetStmt, MatchArmList, SourceFile, | 6 | SmolStr, SourceFile, SyntaxKind, SyntaxNode, TextRange, |
7 | TypeAscriptionOwner, WhileExpr, | ||
8 | }, | ||
9 | SmolStr, SyntaxKind, SyntaxNode, TextRange, | ||
10 | }; | 7 | }; |
11 | 8 | ||
12 | #[derive(Debug, PartialEq, Eq)] | 9 | #[derive(Debug, PartialEq, Eq)] |
@@ -35,7 +32,7 @@ fn get_inlay_hints( | |||
35 | node: &SyntaxNode, | 32 | node: &SyntaxNode, |
36 | ) -> Option<Vec<InlayHint>> { | 33 | ) -> Option<Vec<InlayHint>> { |
37 | visitor() | 34 | visitor() |
38 | .visit(|let_statement: LetStmt| { | 35 | .visit(|let_statement: ast::LetStmt| { |
39 | if let_statement.ascribed_type().is_some() { | 36 | if let_statement.ascribed_type().is_some() { |
40 | return None; | 37 | return None; |
41 | } | 38 | } |
@@ -43,7 +40,7 @@ fn get_inlay_hints( | |||
43 | let analyzer = SourceAnalyzer::new(db, file_id, let_statement.syntax(), None); | 40 | let analyzer = SourceAnalyzer::new(db, file_id, let_statement.syntax(), None); |
44 | Some(get_pat_type_hints(db, &analyzer, pat, false)) | 41 | Some(get_pat_type_hints(db, &analyzer, pat, false)) |
45 | }) | 42 | }) |
46 | .visit(|closure_parameter: LambdaExpr| { | 43 | .visit(|closure_parameter: ast::LambdaExpr| { |
47 | let analyzer = SourceAnalyzer::new(db, file_id, closure_parameter.syntax(), None); | 44 | let analyzer = SourceAnalyzer::new(db, file_id, closure_parameter.syntax(), None); |
48 | closure_parameter.param_list().map(|param_list| { | 45 | closure_parameter.param_list().map(|param_list| { |
49 | param_list | 46 | param_list |
@@ -55,22 +52,22 @@ fn get_inlay_hints( | |||
55 | .collect() | 52 | .collect() |
56 | }) | 53 | }) |
57 | }) | 54 | }) |
58 | .visit(|for_expression: ForExpr| { | 55 | .visit(|for_expression: ast::ForExpr| { |
59 | let pat = for_expression.pat()?; | 56 | let pat = for_expression.pat()?; |
60 | let analyzer = SourceAnalyzer::new(db, file_id, for_expression.syntax(), None); | 57 | let analyzer = SourceAnalyzer::new(db, file_id, for_expression.syntax(), None); |
61 | Some(get_pat_type_hints(db, &analyzer, pat, false)) | 58 | Some(get_pat_type_hints(db, &analyzer, pat, false)) |
62 | }) | 59 | }) |
63 | .visit(|if_expr: IfExpr| { | 60 | .visit(|if_expr: ast::IfExpr| { |
64 | let pat = if_expr.condition()?.pat()?; | 61 | let pat = if_expr.condition()?.pat()?; |
65 | let analyzer = SourceAnalyzer::new(db, file_id, if_expr.syntax(), None); | 62 | let analyzer = SourceAnalyzer::new(db, file_id, if_expr.syntax(), None); |
66 | Some(get_pat_type_hints(db, &analyzer, pat, true)) | 63 | Some(get_pat_type_hints(db, &analyzer, pat, true)) |
67 | }) | 64 | }) |
68 | .visit(|while_expr: WhileExpr| { | 65 | .visit(|while_expr: ast::WhileExpr| { |
69 | let pat = while_expr.condition()?.pat()?; | 66 | let pat = while_expr.condition()?.pat()?; |
70 | let analyzer = SourceAnalyzer::new(db, file_id, while_expr.syntax(), None); | 67 | let analyzer = SourceAnalyzer::new(db, file_id, while_expr.syntax(), None); |
71 | Some(get_pat_type_hints(db, &analyzer, pat, true)) | 68 | Some(get_pat_type_hints(db, &analyzer, pat, true)) |
72 | }) | 69 | }) |
73 | .visit(|match_arm_list: MatchArmList| { | 70 | .visit(|match_arm_list: ast::MatchArmList| { |
74 | let analyzer = SourceAnalyzer::new(db, file_id, match_arm_list.syntax(), None); | 71 | let analyzer = SourceAnalyzer::new(db, file_id, match_arm_list.syntax(), None); |
75 | Some( | 72 | Some( |
76 | match_arm_list | 73 | match_arm_list |