aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_mbe/src/syntax_bridge.rs
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2019-12-05 18:27:39 +0000
committerFlorian Diebold <[email protected]>2019-12-05 18:29:39 +0000
commitab4ecca210d8d280a4e216c2b6edfff303269144 (patch)
tree5c2c135ad639a5e77245bbd62978256345c65c2a /crates/ra_mbe/src/syntax_bridge.rs
parent18f6a995d0fc1f45099f3cc810a5d55d5401b41b (diff)
Don't wrap most syntax trees in invisible delimiters when converting to token tree
Otherwise parsing them again doesn't work.
Diffstat (limited to 'crates/ra_mbe/src/syntax_bridge.rs')
-rw-r--r--crates/ra_mbe/src/syntax_bridge.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/crates/ra_mbe/src/syntax_bridge.rs b/crates/ra_mbe/src/syntax_bridge.rs
index 0fbcb2f66..66c1f0337 100644
--- a/crates/ra_mbe/src/syntax_bridge.rs
+++ b/crates/ra_mbe/src/syntax_bridge.rs
@@ -245,8 +245,14 @@ impl Convertor {
245 } 245 }
246 } 246 }
247 NodeOrToken::Node(node) => { 247 NodeOrToken::Node(node) => {
248 let child = self.go(&node)?.into(); 248 let child_subtree = self.go(&node)?;
249 token_trees.push(child); 249 if child_subtree.delimiter == tt::Delimiter::None
250 && node.kind() != SyntaxKind::TOKEN_TREE
251 {
252 token_trees.extend(child_subtree.token_trees);
253 } else {
254 token_trees.push(child_subtree.into());
255 }
250 } 256 }
251 }; 257 };
252 } 258 }