diff options
author | Florian Diebold <[email protected]> | 2019-12-05 18:27:39 +0000 |
---|---|---|
committer | Florian Diebold <[email protected]> | 2019-12-05 18:29:39 +0000 |
commit | ab4ecca210d8d280a4e216c2b6edfff303269144 (patch) | |
tree | 5c2c135ad639a5e77245bbd62978256345c65c2a /crates/ra_mbe | |
parent | 18f6a995d0fc1f45099f3cc810a5d55d5401b41b (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')
-rw-r--r-- | crates/ra_mbe/src/syntax_bridge.rs | 10 |
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 | } |