-
- Notifications
You must be signed in to change notification settings - Fork 135
Open
Labels
Description
Did you check existing issues?
- I have read all the tree-sitter docs if it relates to using the parser
- I have searched the existing issues of tree-sitter-typescript
Tree-Sitter CLI Version, if relevant (output of tree-sitter --version)
tree-sitter 0.22.6 (b40f342067a89cd6331bf4c27407588320f3c263)
Describe the bug
Parsing code where a decorator is attached to a method definition puts the (decorator) inside the class nearby to the (method_definition) instead of being inside the (method_definition) like I'd expect it to be. Other similar situations (e.g., (class_declaration), (_parameter_name), (public_field_definition)) have the decorator inside the decorated node.
The typescript AST also has the decorator inside of the method definition
https://ts-ast-viewer.com/#code/MYGwhgzhAEBiD29oG8BQ1oAEBOBTMAJvAHYgCe0AZogEJjYAUAlCgL6rtA
Steps To Reproduce/Bad Parse Tree
Trying to parse:
class Foo { @readonly fooBar() {} }Will produce:
(program (class_declaration (type_identifier) (class_body (decorator (identifier)) (method_definition (property_identifier) (formal_parameters) (statement_block)))))Expected Behavior/Parse Tree
I'd expect the parse tree to look like this
(program (class_declaration (type_identifier) (class_body (method_definition (decorator (identifier)) (property_identifier) (formal_parameters) (statement_block)))))Repro
No response