diff --git a/crates/ra_ide_api_light/src/typing.rs b/crates/ra_ide_api_light/src/typing.rs
index 05845a0cc2..c8f3dfe448 100644
--- a/crates/ra_ide_api_light/src/typing.rs
+++ b/crates/ra_ide_api_light/src/typing.rs
@@ -133,12 +133,18 @@ mod tests {
#[test]
fn test_on_eq_typed() {
- fn do_check(before: &str, after: &str) {
+ fn type_eq(before: &str, after: &str) {
let (offset, before) = extract_offset(before);
+ let mut edit = TextEditBuilder::default();
+ edit.insert(offset, "=".to_string());
+ let before = edit.finish().apply(&before);
let file = SourceFile::parse(&before);
- let result = on_eq_typed(&file, offset).unwrap();
- let actual = result.edit.apply(&before);
- assert_eq_text!(after, &actual);
+ if let Some(result) = on_eq_typed(&file, offset) {
+ let actual = result.edit.apply(&before);
+ assert_eq_text!(after, &actual);
+ } else {
+ assert_eq_text!(&before, after)
+ };
}
// do_check(r"
@@ -150,10 +156,10 @@ mod tests {
// let foo =;
// }
// ");
- do_check(
+ type_eq(
r"
fn foo() {
- let foo <|>= 1 + 1
+ let foo <|> 1 + 1
}
",
r"
@@ -175,24 +181,27 @@ fn foo() {
// ");
}
+ fn type_dot(before: &str, after: &str) {
+ let (offset, before) = extract_offset(before);
+ let mut edit = TextEditBuilder::default();
+ edit.insert(offset, ".".to_string());
+ let before = edit.finish().apply(&before);
+ let file = SourceFile::parse(&before);
+ if let Some(result) = on_dot_typed(&file, offset) {
+ let actual = result.edit.apply(&before);
+ assert_eq_text!(after, &actual);
+ } else {
+ assert_eq_text!(&before, after)
+ };
+ }
+
#[test]
- fn test_on_dot_typed() {
- fn do_check(before: &str, after: &str) {
- let (offset, before) = extract_offset(before);
- let file = SourceFile::parse(&before);
- if let Some(result) = on_dot_typed(&file, offset) {
- let actual = result.edit.apply(&before);
- assert_eq_text!(after, &actual);
- } else {
- assert_eq_text!(&before, after)
- };
- }
- // indent if continuing chain call
- do_check(
+ fn indents_new_chain_call() {
+ type_dot(
r"
pub fn child(&self, db: &impl HirDatabase, name: &Name) -> Cancelable