-
-
Notifications
You must be signed in to change notification settings - Fork 69
Description
I'm testing some parsing with big projects and in two instances I think I found the same parsing error. It also reproduces in the TreeSitter playground for csharp.
Simplified issue:
using (CreateAndOpenSelfHost(null, configuration))
{
.....
}
parses into a using_statement->variable_declaration
[using_statement](https://tree-sitter.github.io/tree-sitter/playground#) [139, 12] - [151, 13]
[variable_declaration](https://tree-sitter.github.io/tree-sitter/playground#) [139, 19] - [139, 61]
type: [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [139, 19] - [139, 40]
[variable_declarator](https://tree-sitter.github.io/tree-sitter/playground#) [139, 40] - [139, 61]
[tuple_pattern](https://tree-sitter.github.io/tree-sitter/playground#) [139, 40] - [139, 61]
name: [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [139, 41] - [139, 45]
name: [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [139, 47] - [139, 60]
removing the parameters to the function results in the correct using_statement -> invocation_expression.
Example code:
using (CreateAndOpenSelfHost())
{
.....
}
parses into:
[using_statement](https://tree-sitter.github.io/tree-sitter/playground#) [139, 12] - [151, 13]
[invocation_expression](https://tree-sitter.github.io/tree-sitter/playground#) [139, 19] - [139, 42]
function: [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [139, 19] - [139, 40]
arguments: [argument_list](https://tree-sitter.github.io/tree-sitter/playground#) [139, 40] - [139, 42]
Actual file to parse/copy paste into playground:
https://github.com/NancyFx/Nancy/blob/master/test/Nancy.Hosting.Self.Tests/NancySelfHostFixture.cs#L80
This file has a few using statements - some without arguments that parse to an invocation (as they should) and some, like I linked, with arguments that is parsed to a variable_declarator.
I've started looking at the grammar.js and C# spec to find the issue, it might just be a precedence issues, but wanted to open this issue to ask:
- Am I right that this is an error?
- Any advice on how to fix?
Thanks :)