Skip to content

bug: Incorrect parsing on function typedef #247

Open
@NathanSnail

Description

@NathanSnail

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-c

Tree-Sitter CLI Version, if relevant (output of tree-sitter --version)

No response

Describe the bug

Using

int typedef fn_typdef(const char *args);

like syntax to define a function typedef results in the typedef keyword being highlighted as a variable and an error in the syntax tree.
:Inspect in neovim
image
:InspectTree
image
This syntax is relatively obscure but is valid and so should be highlighted correctly.

Steps To Reproduce/Bad Parse Tree

  1. Make a file which uses function typedef syntax ReturnT typdef TypeName(args);
  2. Now the typedef will by incorrectly represented in the tree.

Expected Behavior/Parse Tree

The tree should probably use keyword.type.c like it usually does for typedefs.

Repro

// Example code that causes the issue
int typedef fn_typdef(const char *args);

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions