aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide_api/src/typing.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_ide_api/src/typing.rs')
-rw-r--r--crates/ra_ide_api/src/typing.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/crates/ra_ide_api/src/typing.rs b/crates/ra_ide_api/src/typing.rs
index d3cb71ddb..01eb32b2f 100644
--- a/crates/ra_ide_api/src/typing.rs
+++ b/crates/ra_ide_api/src/typing.rs
@@ -11,7 +11,8 @@ use ra_syntax::{
11use ra_text_edit::{TextEdit, TextEditBuilder}; 11use ra_text_edit::{TextEdit, TextEditBuilder};
12 12
13pub(crate) fn on_enter(db: &RootDatabase, position: FilePosition) -> Option<SourceChange> { 13pub(crate) fn on_enter(db: &RootDatabase, position: FilePosition) -> Option<SourceChange> {
14 let file = db.parse(position.file_id).tree; 14 let parse = db.parse(position.file_id);
15 let file = parse.tree();
15 let comment = find_token_at_offset(file.syntax(), position.offset) 16 let comment = find_token_at_offset(file.syntax(), position.offset)
16 .left_biased() 17 .left_biased()
17 .and_then(ast::Comment::cast)?; 18 .and_then(ast::Comment::cast)?;
@@ -86,10 +87,10 @@ pub fn on_eq_typed(file: &SourceFile, eq_offset: TextUnit) -> Option<TextEdit> {
86} 87}
87 88
88pub(crate) fn on_dot_typed(db: &RootDatabase, position: FilePosition) -> Option<SourceChange> { 89pub(crate) fn on_dot_typed(db: &RootDatabase, position: FilePosition) -> Option<SourceChange> {
89 let file = db.parse(position.file_id).tree; 90 let parse = db.parse(position.file_id);
90 assert_eq!(file.syntax().text().char_at(position.offset), Some('.')); 91 assert_eq!(parse.tree().syntax().text().char_at(position.offset), Some('.'));
91 92
92 let whitespace = find_token_at_offset(file.syntax(), position.offset) 93 let whitespace = find_token_at_offset(parse.tree().syntax(), position.offset)
93 .left_biased() 94 .left_biased()
94 .and_then(ast::Whitespace::cast)?; 95 .and_then(ast::Whitespace::cast)?;
95 96
@@ -139,8 +140,8 @@ mod tests {
139 let mut edit = TextEditBuilder::default(); 140 let mut edit = TextEditBuilder::default();
140 edit.insert(offset, "=".to_string()); 141 edit.insert(offset, "=".to_string());
141 let before = edit.finish().apply(&before); 142 let before = edit.finish().apply(&before);
142 let file = SourceFile::parse(&before).tree; 143 let parse = SourceFile::parse(&before);
143 if let Some(result) = on_eq_typed(&file, offset) { 144 if let Some(result) = on_eq_typed(parse.tree(), offset) {
144 let actual = result.apply(&before); 145 let actual = result.apply(&before);
145 assert_eq_text!(after, &actual); 146 assert_eq_text!(after, &actual);
146 } else { 147 } else {