Skip to content

Completions in object type argument fails in JSDoc comment #51054

Description

This one is similar to #50750.

Found from #50950 (comment), and the actual code is here.

In a TypeScript file:

interface Yadda<T> { }

/**
 * @type {Yadda<{ $ }>}
 */

Request completions at $.

TypeError: Cannot read properties of undefined (reading 'flags')
    at getMembersOfSymbol (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:58932:27)
    at getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:63962:21)
    at getTypeFromTypeNodeWorker (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:64357:28)
    at getTypeFromTypeNode (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:64281:49)
    at Object.map (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:460:29)
    at typeArgumentsFromTypeReferenceNode (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:61704:23)
    at getTypeFromClassOrInterfaceReference (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:61387:103)
    at getTypeReferenceType (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:61503:24)
    at getTypeFromTypeReference (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:61689:32)
    at getTypeParametersForTypeReference (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:82079:24)
    at getTypeArgumentConstraint (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:82120:34)
    at Object.getTypeArgumentConstraint (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:49503:32)
    at getConstraintOfTypeArgumentProperty (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:138015:32)
    at tryGetObjectTypeLiteralInTypeArgumentCompletionSymbols (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:136991:45)
    at tryGetGlobalSymbols (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:136537:30)
    at getCompletionData (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:136289:22)
    at Object.getCompletionsAtPosition (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:134871:34)
    at Object.getCompletionsAtPosition (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:168444:35)
    at Session.getCompletions (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:180576:64)
    at Session.handlers.ts.Map.ts.getEntries._a.<computed> (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:179249:61)
    at c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:181309:96
    at Session.executeWithRequestId (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:181300:28)
    at Session.executeCommand (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:181309:41)
    at Session.onMessage (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:181337:35)
    at process.<anonymous> (c:/Users/Daniel/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-4.9.20220919/node_modules/typescript/lib/tsserver.js:185489:31)
    at process.emit (node:events:526:28)
    at emit (node:internal/child_process:938:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:84:21)

Activity

  1. added
    BugA bug in TypeScript
    Effort: ModerateRequires experience with the TypeScript codebase, but feasible. Harder than "Effort: Casual".
    Crawler-DetectedDetected by a crawler running random TSServer operations on public code.
    on Oct 4, 2022
  2. locked as resolved and limited conversation to collaborators on Dec 3, 2025
  3. RyanCavanaugh commented on Dec 3, 2025

    @RyanCavanaugh
    Member

    Closing language service bugs related to the 6.0 implementation. For more information, see #62827

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    7.0 LS MigrationBugA bug in TypeScriptCrawler-DetectedDetected by a crawler running random TSServer operations on public code.Domain: LS: Completion ListsThe issue relates to showing completion lists in an editorEffort: ModerateRequires experience with the TypeScript codebase, but feasible. Harder than "Effort: Casual".Help WantedYou can do this

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions