Skip to content

[bug] Missing import function matcher in TypeScript #1959

@Timeless0911

Description

@Timeless0911

Please read the FAQ for the bug you encountered.

  • I have read the existing FAQ

⏯ Playground Link

https://ast-grep.github.io/playground.html#eyJtb2RlIjoiQ29uZmlnIiwibGFuZyI6InR5cGVzY3JpcHQiLCJxdWVyeSI6ImNsYXNzICQkJENCUzpcclxuICAgICcnJyREUycnJ1xyXG4gICAgJCQkQ0JcclxuIiwicmV3cml0ZSI6ImNsYXNzICQkJENCUzpcclxuICAgIFwiXCJcIiREU1wiXCJcIlxyXG4gICAgYmF0Y2hfbW9kZSA9IFRydWVcclxuICAgICQkJENCIiwic3RyaWN0bmVzcyI6InNtYXJ0Iiwic2VsZWN0b3IiOiJFUlJPUiIsImNvbmZpZyI6InJ1bGU6XG4gIGFueTpcbiAgLSBraW5kOiBpbXBvcnRfc3RhdGVtZW50XG4gICAgaGFzOlxuICAgICAgZmllbGQ6IHNvdXJjZVxuICAgICAgaGFzOlxuICAgICAgICBwYXR0ZXJuOiAkSU1QIFxuICAgICAgICBraW5kOiBzdHJpbmdfZnJhZ21lbnRcbiAgLSBraW5kOiBleHBvcnRfc3RhdGVtZW50XG4gICAgaGFzOlxuICAgICAgZmllbGQ6IHNvdXJjZVxuICAgICAgaGFzOlxuICAgICAgICBwYXR0ZXJuOiAkSU1QIFxuICAgICAgICBraW5kOiBzdHJpbmdfZnJhZ21lbnRcbiAgLSBhbnk6XG4gICAgICAtIHBhdHRlcm46IHJlcXVpcmUoJEEpXG4gICAgICAtIHBhdHRlcm46IGltcG9ydCgkQSlcbiAgICBoYXM6XG4gICAgICBmaWVsZDogYXJndW1lbnRzXG4gICAgICBoYXM6XG4gICAgICAgIGhhczogXG4gICAgICAgICAgcGF0dGVybjogJElNUCBcbiAgICAgICAgICBraW5kOiBzdHJpbmdfZnJhZ21lbnRcbiIsInNvdXJjZSI6IlpvZE9iamVjdDx7XG4gICAgbW9kZTogaW1wb3J0KFwiLi4vLi4vLi4vY29tcGlsZWQvem9kXCIpLlpvZE9wdGlvbmFsPGltcG9ydChcIi4uLy4uLy4uL2NvbXBpbGVkL3pvZFwiKS5ab2RFbnVtPFtcInVzYWdlXCIsIFwiZW50cnlcIl0+PjtcbiAgICBkZWJ1ZzogaW1wb3J0KFwiLi4vLi4vLi4vY29tcGlsZWQvem9kXCIpLlpvZE9wdGlvbmFsPGltcG9ydChcIi4uLy4uLy4uL2NvbXBpbGVkL3pvZFwiKS5ab2RCb29sZWFuPjtcbiAgICBkeW5hbWljSW1wb3J0OiBpbXBvcnQoXCIuLi8uLi8uLi9jb21waWxlZC96b2RcIikuWm9kT3B0aW9uYWw8aW1wb3J0KFwiLi4vLi4vLi4vY29tcGlsZWQvem9kXCIpLlpvZEJvb2xlYW4+O1xuICAgIGxvb3NlOiBpbXBvcnQoXCIuLi8uLi8uLi9jb21waWxlZC96b2RcIikuWm9kT3B0aW9uYWw8aW1wb3J0KFwiLi4vLi4vLi4vY29tcGlsZWQvem9kXCIpLlpvZEJvb2xlYW4+O1xuICAgIGJ1Z2ZpeGVzOiBpbXBvcnQoXCIuLi8uLi8uLi9jb21waWxlZC96b2RcIikuWm9kT3B0aW9uYWw8aW1wb3J0KFwiLi4vLi4vLi4vY29tcGlsZWQvem9kXCIpLlpvZEJvb2xlYW4+O1xuICAgIHNraXA6IGltcG9ydChcIi4uLy4uLy4uL2NvbXBpbGVkL3pvZFwiKS5ab2RPcHRpb25hbDxpbXBvcnQoXCIuLi8uLi8uLi9jb21waWxlZC96b2RcIikuWm9kQXJyYXk8aW1wb3J0KFwiLi4vLi4vLi4vY29tcGlsZWQvem9kXCIpLlpvZFN0cmluZywgXCJtYW55XCI+PjtcbiAgICBpbmNsdWRlOiBpbXBvcnQoXCIuLi8uLi8uLi9jb21waWxlZC96b2RcIikuWm9kT3B0aW9uYWw8aW1wb3J0KFwiLi4vLi4vLi4vY29tcGlsZWQvem9kXCIpLlpvZEFycmF5PGltcG9ydChcIi4uLy4uLy4uL2NvbXBpbGVkL3pvZFwiKS5ab2RTdHJpbmcsIFwibWFueVwiPj47XG4gICAgZXhjbHVkZTogaW1wb3J0KFwiLi4vLi4vLi4vY29tcGlsZWQvem9kXCIpLlpvZE9wdGlvbmFsPGltcG9ydChcIi4uLy4uLy4uL2NvbXBpbGVkL3pvZFwiKS5ab2RBcnJheTxpbXBvcnQoXCIuLi8uLi8uLi9jb21waWxlZC96b2RcIikuWm9kU3RyaW5nLCBcIm1hbnlcIj4+O1xuICAgIGNvcmVKczogaW1wb3J0KFwiLi4vLi4vLi4vY29tcGlsZWQvem9kXCIpLlpvZE9wdGlvbmFsPGltcG9ydChcIi4uLy4uLy4uL2NvbXBpbGVkL3pvZFwiKS5ab2RTdHJpbmc+O1xuICAgIHRhcmdldHM6IGltcG9ydChcIi4uLy4uLy4uL2NvbXBpbGVkL3pvZFwiKS5ab2RPcHRpb25hbDxpbXBvcnQoXCIuLi8uLi8uLi9jb21waWxlZC96b2RcIikuWm9kQW55PjtcbiAgICBwYXRoOiBpbXBvcnQoXCIuLi8uLi8uLi9jb21waWxlZC96b2RcIikuWm9kT3B0aW9uYWw8aW1wb3J0KFwiLi4vLi4vLi4vY29tcGlsZWQvem9kXCIpLlpvZFN0cmluZz47XG4gICAgc2hpcHBlZFByb3Bvc2FsczogaW1wb3J0KFwiLi4vLi4vLi4vY29tcGlsZWQvem9kXCIpLlpvZE9wdGlvbmFsPGltcG9ydChcIi4uLy4uLy4uL2NvbXBpbGVkL3pvZFwiKS5ab2RCb29sZWFuPjtcbiAgICBmb3JjZUFsbFRyYW5zZm9ybXM6IGltcG9ydChcIi4uLy4uLy4uL2NvbXBpbGVkL3pvZFwiKS5ab2RPcHRpb25hbDxpbXBvcnQoXCIuLi8uLi8uLi9jb21waWxlZC96b2RcIikuWm9kQm9vbGVhbj47XG59PlxuXG5ab2RPYmplY3Q8e1xuICAgIG1vZGU6IGltcG9ydChcInpvZFwiKS5ab2RPcHRpb25hbDxpbXBvcnQoXCJ6b2RcIikuWm9kRW51bTxbXCJ1c2FnZVwiLCBcImVudHJ5XCJdPj47XG4gICAgZGVidWc6IGltcG9ydChcInpvZFwiKS5ab2RPcHRpb25hbDxpbXBvcnQoXCJ6b2RcIikuWm9kQm9vbGVhbj47XG4gICAgZHluYW1pY0ltcG9ydDogaW1wb3J0KFwiem9kXCIpLlpvZE9wdGlvbmFsPGltcG9ydChcInpvZFwiKS5ab2RCb29sZWFuPjtcbiAgICBsb29zZTogaW1wb3J0KFwiem9kXCIpLlpvZE9wdGlvbmFsPGltcG9ydChcInpvZFwiKS5ab2RCb29sZWFuPjtcbiAgICBidWdmaXhlczogaW1wb3J0KFwiem9kXCIpLlpvZE9wdGlvbmFsPGltcG9ydChcInpvZFwiKS5ab2RCb29sZWFuPjtcbiAgICBza2lwOiBpbXBvcnQoXCJ6b2RcIikuWm9kT3B0aW9uYWw8aW1wb3J0KFwiem9kXCIpLlpvZEFycmF5PGltcG9ydChcInpvZFwiKS5ab2RTdHJpbmcsIFwibWFueVwiPj47XG4gICAgaW5jbHVkZTogaW1wb3J0KFwiem9kXCIpLlpvZE9wdGlvbmFsPGltcG9ydChcInpvZFwiKS5ab2RBcnJheTxpbXBvcnQoXCJ6b2RcIikuWm9kU3RyaW5nLCBcIm1hbnlcIj4+O1xuICAgIGV4Y2x1ZGU6IGltcG9ydChcInpvZFwiKS5ab2RPcHRpb25hbDxpbXBvcnQoXCJ6b2RcIikuWm9kQXJyYXk8aW1wb3J0KFwiem9kXCIpLlpvZFN0cmluZywgXCJtYW55XCI+PjtcbiAgICBjb3JlSnM6IGltcG9ydChcInpvZFwiKS5ab2RPcHRpb25hbDxpbXBvcnQoXCJ6b2RcIikuWm9kU3RyaW5nPjtcbiAgICB0YXJnZXRzOiBpbXBvcnQoXCJ6b2RcIikuWm9kT3B0aW9uYWw8aW1wb3J0KFwiem9kXCIpLlpvZEFueT47XG4gICAgcGF0aDogaW1wb3J0KFwiem9kXCIpLlpvZE9wdGlvbmFsPGltcG9ydChcInpvZFwiKS5ab2RTdHJpbmc+O1xuICAgIHNoaXBwZWRQcm9wb3NhbHM6IGltcG9ydChcInpvZFwiKS5ab2RPcHRpb25hbDxpbXBvcnQoXCJ6b2RcIikuWm9kQm9vbGVhbj47XG4gICAgZm9yY2VBbGxUcmFuc2Zvcm1zOiBpbXBvcnQoXCJ6b2RcIikuWm9kT3B0aW9uYWw8aW1wb3J0KFwiem9kXCIpLlpvZEJvb2xlYW4+O1xufT4ifQ==

💻 Code

Origin file: https://github.com/Timeless0911/ast-grep-matcher-performance/blob/main/file/zod-types.d.ts

Hi, sorry to bother you. Our project uses zod extensively and today our team members accidentally found that the following case which not all import("zod") will be matched in file above.

Since the origin file is too large, the playground is a try to reproduce, not a very strict grammatical structure. You can check the origin file for more details.

🙁 Actual behavior

Image

🙂 Expected behavior

All import statement is matched.

Additional information about the issue

This is not a serious issue, file this to record.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingupstreamUpstream issue from tree-sitter

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions