Skip to content

Error from completionEntryDetails on entry before definition of merged variable and type alias #54106

Closed
@DanielRosenwasser

Description

@DanielRosenwasser

Minimal repro:

/**/
type lolol = any;
declare const lolol: any;

Request completions and view completion entry details on lolol.

Expected:

Something like

type lolol = any;
var lolol: any;

Actual:

Response received: completionEntryDetails (486). Request took 4 ms. Success: false . Message: Error processing request. Cannot read properties of undefined (reading 'kind')
TypeError: Cannot read properties of undefined (reading 'kind')
    at isTypeReferenceNode (/home/codespace/.vscode-remote/extensions/ms-vscode.vscode-typescript-next-5.1.20230416/node_modules/typescript/lib/tsserver.js:28145:15)
    at isConstTypeReference (/home/codespace/.vscode-remote/extensions/ms-vscode.vscode-typescript-next-5.1.20230416/node_modules/typescript/lib/tsserver.js:14193:10)
    at Object.getSymbolDisplayPartsDocumentationAndSymbolKind (/home/codespace/.vscode-remote/extensions/ms-vscode.vscode-typescript-next-5.1.20230416/node_modules/typescript/lib/tsserver.js:164362:60)
    at /home/codespace/.vscode-remote/extensions/ms-vscode.vscode-typescript-next-5.1.20230416/node_modules/typescript/lib/tsserver.js:150803:44
    at Object.runWithCancellationToken (/home/codespace/.vscode-remote/extensions/ms-vscode.vscode-typescript-next-5.1.20230416/node_modules/typescript/lib/tsserver.js:47691:16)
    at createCompletionDetailsForSymbol (/home/codespace/.vscode-remote/extensions/ms-vscode.vscode-typescript-next-5.1.20230416/node_modules/typescript/lib/tsserver.js:150801:69)
    at Object.getCompletionEntryDetails (/home/codespace/.vscode-remote/extensions/ms-vscode.vscode-typescript-next-5.1.20230416/node_modules/typescript/lib/tsserver.js:150749:14)
    at Object.getCompletionEntryDetails2 [as getCompletionEntryDetails] (/home/codespace/.vscode-remote/extensions/ms-vscode.vscode-typescript-next-5.1.20230416/node_modules/typescript/lib/tsserver.js:136309:35)
    at /home/codespace/.vscode-remote/extensions/ms-vscode.vscode-typescript-next-5.1.20230416/node_modules/typescript/lib/tsserver.js:180769:43
    at mapDefined (/home/codespace/.vscode-remote/extensions/ms-vscode.vscode-typescript-next-5.1.20230416/node_modules/typescript/lib/tsserver.js:2638:22)
    at IpcIOSession.getCompletionEntryDetails (/home/codespace/.vscode-remote/extensions/ms-vscode.vscode-typescript-next-5.1.20230416/node_modules/typescript/lib/tsserver.js:180767:20)
    at completionEntryDetails (/home/codespace/.vscode-remote/extensions/ms-vscode.vscode-typescript-next-5.1.20230416/node_modules/typescript/lib/tsserver.js:179120:43)
    at /home/codespace/.vscode-remote/extensions/ms-vscode.vscode-typescript-next-5.1.20230416/node_modules/typescript/lib/tsserver.js:181457:69
    at IpcIOSession.executeWithRequestId (/home/codespace/.vscode-remote/extensions/ms-vscode.vscode-typescript-next-5.1.20230416/node_modules/typescript/lib/tsserver.js:181449:14)

TypeError: Cannot read properties of undefined (reading 'kind')

Req #1304 - completionEntryDetails
    at isTypeReferenceNode (/typescript-5.1.0-dev.20230430/lib/tsserver.js:28152:15)
    at isConstTypeReference (/typescript-5.1.0-dev.20230430/lib/tsserver.js:14196:10)
    at Object.getSymbolDisplayPartsDocumentationAndSymbolKind (/typescript-5.1.0-dev.20230430/lib/tsserver.js:165036:60)
    at /typescript-5.1.0-dev.20230430/lib/tsserver.js:156395:44
    at Object.runWithCancellationToken (/typescript-5.1.0-dev.20230430/lib/tsserver.js:47706:16)
    at createCompletionDetailsForSymbol (/typescript-5.1.0-dev.20230430/lib/tsserver.js:156393:69)
    at Object.getCompletionEntryDetails (/typescript-5.1.0-dev.20230430/lib/tsserver.js:156341:14)
    at Object.getCompletionEntryDetails2 [as getCompletionEntryDetails] (/typescript-5.1.0-dev.20230430/lib/tsserver.js:141881:35)
    at /typescript-5.1.0-dev.20230430/lib/tsserver.js:181470:43
    at mapDefined (/typescript-5.1.0-dev.20230430/lib/tsserver.js:2643:22)
    at IOSession.getCompletionEntryDetails (/typescript-5.1.0-dev.20230430/lib/tsserver.js:181468:20)
    at completionEntryDetails (/typescript-5.1.0-dev.20230430/lib/tsserver.js:179818:43)
    at /typescript-5.1.0-dev.20230430/lib/tsserver.js:182167:69
    at IOSession.executeWithRequestId (/typescript-5.1.0-dev.20230430/lib/tsserver.js:182159:14)
    at IOSession.executeCommand (/typescript-5.1.0-dev.20230430/lib/tsserver.js:182167:29)
    at IOSession.onMessage (/typescript-5.1.0-dev.20230430/lib/tsserver.js:182209:51)
    at Interface.<anonymous> (/typescript-5.1.0-dev.20230430/lib/tsserver.js:183765:14)

Affected repos

withastro/astro Raw error text: RepoResults2/withastro.astro.rawError.txt in the artifact folder

Last few requests

{"seq":1301,"type":"request","command":"organizeImports","arguments":{"scope":{"type":"file","args":{"file":"@PROJECT_ROOT@/packages/astro/env.d.ts"}},"skipDestructiveCodeActions":true}}
{"seq":1302,"type":"request","command":"getOutliningSpans","arguments":{"file":"@PROJECT_ROOT@/packages/astro/env.d.ts"}}
{"seq":1303,"type":"request","command":"completionInfo","arguments":{"file":"@PROJECT_ROOT@/packages/astro/env.d.ts","line":3,"offset":1,"includeExternalModuleExports":false,"triggerKind":1}}
{"seq":1304,"type":"request","command":"completionEntryDetails","arguments":{"file":"@PROJECT_ROOT@/packages/astro/env.d.ts","line":3,"offset":1,"entryNames":["Astro"]}}

Repro steps

  1. git clone https://github.com/withastro/astro --recurse-submodules
  2. In dir astro, run git reset --hard 2dca81bf2174cd5c27cb63cb0ae081ea2a1ac771
  3. In dir astro, run pnpm install --no-frozen-lockfile --prefer-offline --ignore-scripts --reporter=silent
  4. Back in the initial folder, download RepoResults2/withastro.astro.replay.txt from the artifact folder
  5. npm install --no-save @typescript/server-replay
  6. npx tsreplay ./astro ./withastro.astro.replay.txt path/to/tsserver.js
  7. npx tsreplay --help to learn about helpful switches for debugging, logging, etc

Originally posted by @typescript-bot in #54077 (comment)

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptCrawler-DetectedDetected by a crawler running random TSServer operations on public code.Domain: Type DisplayBugs relating to showing types in Quick Info/Tooltips, Signature Help, or Completion InfoFix AvailableA PR has been opened for this issue

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions