diff options
| author | Aleksey Kladov <aleksey.kladov@gmail.com> | 2021-09-26 15:49:23 +0300 |
|---|---|---|
| committer | Aleksey Kladov <aleksey.kladov@gmail.com> | 2021-09-26 15:49:23 +0300 |
| commit | defe805fb763f3d4b11cbbe3dde460b825eea1ae (patch) | |
| tree | 1cb0a06d6cf0ffa03b9e48944c2b627d3fd99a65 /crates/syntax/src/syntax_node.rs | |
| parent | 06181008551b4f920d6e91e1f6bc270d78428bc6 (diff) | |
| download | rust-defe805fb763f3d4b11cbbe3dde460b825eea1ae.tar.gz rust-defe805fb763f3d4b11cbbe3dde460b825eea1ae.zip | |
internal: fix and force-disable block validation ;-(
Originally we tried to maintain the invariant that `{}` always match.
That is, that in the parse tree the pair of corresponding `{}` is always
first and last tokens of some nodes.
We had the code to validate that, but apparently it's been broken for
**years** since we introduced tokens/nodes split. Fixing it now makes
some tests fail.
It's unclear if we want to keep this invariant: there's a strong
motivation for breaking it in the following case:
```
use std::{ // unclosed paren
fn main() {
}
} // don't actually want to pair up this with the one from `use`
```
So let's fix the code, but disable it for the time being
Diffstat (limited to 'crates/syntax/src/syntax_node.rs')
| -rw-r--r-- | crates/syntax/src/syntax_node.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/crates/syntax/src/syntax_node.rs b/crates/syntax/src/syntax_node.rs index 6e838dd2292..0ddfd439dce 100644 --- a/crates/syntax/src/syntax_node.rs +++ b/crates/syntax/src/syntax_node.rs @@ -47,7 +47,7 @@ impl SyntaxTreeBuilder { pub fn finish(self) -> Parse<SyntaxNode> { let (green, errors) = self.finish_raw(); - if cfg!(debug_assertions) { + if cfg!(debug_assertions) && false { let node = SyntaxNode::new_root(green.clone()); crate::validation::validate_block_structure(&node); } |
