]> git.lizzy.rs Git - rust.git/commitdiff
minor: untangle complex condition
authorAleksey Kladov <aleksey.kladov@gmail.com>
Sun, 4 Jul 2021 14:32:59 +0000 (17:32 +0300)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Sun, 4 Jul 2021 14:32:59 +0000 (17:32 +0300)
crates/syntax/src/ted.rs

index ae970f44f16a02368dedc75dfa928a3a13072d73..aee90d3574b41797e2507090688238a0d137504c 100644 (file)
@@ -150,18 +150,17 @@ pub fn append_child_raw(node: &(impl Into<SyntaxNode> + Clone), child: impl Elem
 fn ws_before(position: &Position, new: &SyntaxElement) -> Option<SyntaxToken> {
     let prev = match &position.repr {
         PositionRepr::FirstChild(_) => return None,
-        PositionRepr::After(it) if it.kind() == SyntaxKind::L_CURLY => {
-            if new.kind() == SyntaxKind::USE {
-                if let Some(item_list) = it.parent().and_then(ast::ItemList::cast) {
-                    let mut indent = IndentLevel::from_element(&item_list.syntax().clone().into());
-                    indent.0 += 1;
-                    return Some(make::tokens::whitespace(&format!("\n{}", indent)));
-                }
-            }
-            it
-        }
         PositionRepr::After(it) => it,
     };
+
+    if prev.kind() == T!['{'] && new.kind() == SyntaxKind::USE {
+        if let Some(item_list) = prev.parent().and_then(ast::ItemList::cast) {
+            let mut indent = IndentLevel::from_element(&item_list.syntax().clone().into());
+            indent.0 += 1;
+            return Some(make::tokens::whitespace(&format!("\n{}", indent)));
+        }
+    }
+
     ws_between(prev, new)
 }
 fn ws_after(position: &Position, new: &SyntaxElement) -> Option<SyntaxToken> {