Skip to content

Parsing fails for function declaration with generic #13

Open
@eltigerchino

Description

@eltigerchino

First reported in: sveltejs/kit#13809

Declaring a function with a generic type causes the parsing to fail.

Reproduction and instructions in the link below:

https://stackblitz.com/edit/vitejs-vite-15ihfkea?file=README.md

Logs:

> vite-typescript-starter@0.0.0 start /home/projects/vitejs-vite-15ihfkea
> node src/index.js

SyntaxError: Unexpected token (4:40)
    at pp$4.raise (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:3684:13)
    at raiseCommonCheck (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:4896:36)
    at raise (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:4902:21)
    at pp$9.unexpected (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:804:8)
    at pp$9.semicolon (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:781:66)
    at parseVarStatement (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:3590:14)
    at pp$8.parseStatement (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:959:17)
    at parseStatement (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:3622:22)
    at pp$8.parseTopLevel (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:861:21)
    at parse (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:630:15)
    at parse (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:4772:23)
    at  (file:///home/projects/vitejs-vite-15ihfkea/src/index.js:20:73)
    at _0x203b44 (https://vitejsvite15ihfkea-0fco.w-corp-staticblitz.com/blitz.4d9fd228.js:31:825608)
    at run (https://vitejsvite15ihfkea-0fco.w-corp-staticblitz.com/blitz.4d9fd228.js:31:826394)
    at _0x33de07 (https://vitejsvite15ihfkea-0fco.w-corp-staticblitz.com/blitz.4d9fd228.js:31:841515)
    at _evaluate (https://vitejsvite15ihfkea-0fco.w-corp-staticblitz.com/blitz.4d9fd228.js:31:841869)
    at evaluate (https://vitejsvite15ihfkea-0fco.w-corp-staticblitz.com/blitz.4d9fd228.js:31:838193)
    at run (node:internal/modules/esm/module_job:158:3371)

Node.js v20.19.1
 ELIFECYCLE  Command failed with exit code 1.

Removing the comments in the TypeScript file yields a different error:

> vite-typescript-starter@0.0.0 start /home/projects/vitejs-vite-15ihfkea
> node src/index.js

TypeError: exprList is null
    at toAssignableList (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:3488:29)
    at pp$5.parseArrowExpression (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:3459:22)
    at tsTryParseGenericAsyncArrowFunction (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:1326:22)
    at <anonymous> (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:4461:41)
    at <anonymous> (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:2771:13)
    at tryParse (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:1216:26)
    at tsTryParseAndCatch (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:2768:29)
    at parseSubscript (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:4459:31)
    at pp$5.parseSubscripts (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:2822:24)
    at pp$5.parseExprSubscripts (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:2806:21)
    at pp$5.parseMaybeUnary (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:2761:17)
    at parseMaybeUnary (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:2705:24)
    at pp$5.parseExprOps (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:2689:19)
    at parseMaybeConditional (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:3666:25)
    at parseMaybeAssignOrigin (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:4019:25)
    at parseMaybeAssign (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:4068:23)
    at pp$8.parseVar (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:1359:24)
    at parseVarStatement (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:3589:15)
    at pp$8.parseStatement (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:959:17)
    at parseStatement (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:3622:22)
    at pp$8.parseTopLevel (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:861:21)
    at parse (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/acorn@8.14.1/node_modules/acorn/dist/acorn.mjs:630:15)
    at parse (file:///home/projects/vitejs-vite-15ihfkea/node_modules/.pnpm/@sveltejs+acorn-typescript@1.0.5_acorn@8.14.1/node_modules/@sveltejs/acorn-typescript/index.js:4772:23)
    at  (file:///home/projects/vitejs-vite-15ihfkea/src/index.js:20:73)
    at _0x203b44 (https://vitejsvite15ihfkea-0fco.w-corp-staticblitz.com/blitz.4d9fd228.js:31:825608)
    at run (https://vitejsvite15ihfkea-0fco.w-corp-staticblitz.com/blitz.4d9fd228.js:31:826394)
    at _0x33de07 (https://vitejsvite15ihfkea-0fco.w-corp-staticblitz.com/blitz.4d9fd228.js:31:841515)
    at _evaluate (https://vitejsvite15ihfkea-0fco.w-corp-staticblitz.com/blitz.4d9fd228.js:31:841869)
    at evaluate (https://vitejsvite15ihfkea-0fco.w-corp-staticblitz.com/blitz.4d9fd228.js:31:838193)
    at run (node:internal/modules/esm/module_job:158:3371)

Node.js v20.19.1
 ELIFECYCLE  Command failed with exit code 1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions