deepkit / deepkit-framework

A new full-featured and high-performance TypeScript framework
https://deepkit.io/
MIT License
3.21k stars 123 forks source link

Node InferType did not pass test 'isEntityName'. #455

Closed marcus-sa closed 1 year ago

marcus-sa commented 1 year ago

https://github.com/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error

  1. $ pnpm install
  2. $ nx serve frontend
  3. Open http://localhost:4200 in browser
11:22:11 AM [vite] Internal server error: Debug Failure. False expression: Unexpected node.
Verbose Debug Information: Node InferType did not pass test 'isEntityName'.
  Plugin: deepkit-type
  File: /Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/libs/ui/src/lib/deepkit-client-context.tsx
      at visitNode (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85362:11)
      at visitEachChildOfTypeReferenceNode (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85772:32)
      at visitEachChild (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85603:35)
      at searchArgument (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/@deepkit+type-compiler@1.0.1-alpha.97_typescript@5.0.2/node_modules/@deepkit/type-compiler/dist/cjs/src/compiler.js:1880:32)
      at visitArrayWorker (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85415:51)
      at visitNodes2 (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85386:21)
      at visitEachChildOfTypeReferenceNode (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85773:13)
      at visitEachChild (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85603:35)
      at ReflectionTransformer.resolveTypeParameter (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/@deepkit+type-compiler@1.0.1-alpha.97_typescript@5.0.2/node_modules/@deepkit/type-compiler/dist/cjs/src/compiler.js:1888:50)
      at ReflectionTransformer.extractPackStructOfTypeReference (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/@deepkit+type-compiler@1.0.1-alpha.97_typescript@5.0.2/node_modules/@deepkit/type-compiler/dist/cjs/src/compiler.js:1776:22)
      at ReflectionTransformer.extractPackStructOfType (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/@deepkit+type-compiler@1.0.1-alpha.97_typescript@5.0.2/node_modules/@deepkit/type-compiler/dist/cjs/src/compiler.js:1024:22)
      at ReflectionTransformer.getTypeOfType (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/@deepkit+type-compiler@1.0.1-alpha.97_typescript@5.0.2/node_modules/@deepkit/type-compiler/dist/cjs/src/compiler.js:2016:14)
      at visitor (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/@deepkit+type-compiler@1.0.1-alpha.97_typescript@5.0.2/node_modules/@deepkit/type-compiler/dist/cjs/src/compiler.js:613:39)
      at visitNode (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85353:21)
      at visitEachChildOfBinaryExpression (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:86099:32)
      at visitEachChild (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85603:35)
      at visitor (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/@deepkit+type-compiler@1.0.1-alpha.97_typescript@5.0.2/node_modules/@deepkit/type-compiler/dist/cjs/src/compiler.js:522:20)
      at visitNode (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85353:21)
      at visitEachChildOfExpressionStatement (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:86203:32)
      at visitEachChild (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85603:35)
      at visitor (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/@deepkit+type-compiler@1.0.1-alpha.97_typescript@5.0.2/node_modules/@deepkit/type-compiler/dist/cjs/src/compiler.js:522:20)
      at visitArrayWorker (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85415:51)
      at visitNodes2 (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85386:21)
      at visitEachChildOfBlock (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:86190:13)
      at visitEachChild (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85603:35)
      at visitor (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/@deepkit+type-compiler@1.0.1-alpha.97_typescript@5.0.2/node_modules/@deepkit/type-compiler/dist/cjs/src/compiler.js:522:20)
      at visitNode (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85353:21)
      at visitEachChildOfIfStatement (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:86210:32)
      at visitEachChild (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85603:35)
      at visitor (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/@deepkit+type-compiler@1.0.1-alpha.97_typescript@5.0.2/node_modules/@deepkit/type-compiler/dist/cjs/src/compiler.js:522:20)
      at visitArrayWorker (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85415:51)
      at visitNodes2 (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85386:21)
      at visitEachChildOfBlock (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:86190:13)
      at visitEachChild (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85603:35)
      at visitor (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/@deepkit+type-compiler@1.0.1-alpha.97_typescript@5.0.2/node_modules/@deepkit/type-compiler/dist/cjs/src/compiler.js:522:20)
      at visitNode (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85353:21)
      at visitFunctionBody (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85559:21)
      at visitEachChildOfArrowFunction (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:86055:13)
      at visitEachChild (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85603:35)
      at visitor (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/@deepkit+type-compiler@1.0.1-alpha.97_typescript@5.0.2/node_modules/@deepkit/type-compiler/dist/cjs/src/compiler.js:522:20)
      at visitArrayWorker (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85415:51)
      at visitNodes2 (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85386:21)
      at visitEachChildOfCallExpression (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:86003:13)
      at visitEachChild (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85603:35)
      at visitor (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/@deepkit+type-compiler@1.0.1-alpha.97_typescript@5.0.2/node_modules/@deepkit/type-compiler/dist/cjs/src/compiler.js:522:20)
      at visitNode (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85353:21)
      at visitEachChildOfReturnStatement (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:86269:13)
      at visitEachChild (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85603:35)
      at visitor (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/@deepkit+type-compiler@1.0.1-alpha.97_typescript@5.0.2/node_modules/@deepkit/type-compiler/dist/cjs/src/compiler.js:522:20)
      at visitArrayWorker (/Users/marcus-sa/Git/marcus-sa/nx-deepkit-react-vite-type-compiler-unexpected-node-error/node_modules/.pnpm/typescript@5.0.2/node_modules/typescript/lib/typescript.js:85415:51)
marcus-sa commented 1 year ago

Here's the simplest reproduction

function a<T>(t: T) {
    return b<T>(t);
}

function b<T>(t: T): T {
    return t;
}

a(1);

The problem appears to be with generics.

marcus-sa commented 1 year ago

Can be worked around by adding

/** @reflection never */
marcus-sa commented 11 months ago

@marcj this was never fixed

marcj commented 11 months ago

we need a failing unit test. I assume the code above doesnt fail in our test suite