Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Assertion failure in method snippet completions for subclasses with multiple type parameter references #48379

Copy link
Copy link
@DanielRosenwasser

Description

@DanielRosenwasser
Issue body actions

Same stack trace as #45744

declare class Component<T> {
  setState(stateHandler: ((oldState: T, newState: T) => void)): void;
}

class SubComponent extends Component<{}> {
    /*$*/
}

Request snippet completions at /*$*/.

<semantic> Response received: completionInfo (1916). Request took 8 ms. Success: false . Message: Error processing request. Debug Failure. False expression.
Error: Debug Failure. False expression.
    at consumeTokenAndAdvanceScanner ([node_modules_dir]/typescript/lib/tsserver.js:145519:30)
    at processChildNodes ([node_modules_dir]/typescript/lib/tsserver.js:145489:33)
    at [node_modules_dir]/typescript/lib/tsserver.js:145384:21
    at visitNodes ([node_modules_dir]/typescript/lib/tsserver.js:30152:24)
    at Object.forEachChild ([node_modules_dir]/typescript/lib/tsserver.js:30323:24)
    at processNode ([node_modules_dir]/typescript/lib/tsserver.js:145381:20)
    at processChildNode ([node_modules_dir]/typescript/lib/tsserver.js:145449:21)
    at processChildNodes ([node_modules_dir]/typescript/lib/tsserver.js:145496:48)
    at [node_modules_dir]/typescript/lib/tsserver.js:145384:21
    at visitNodes ([node_modules_dir]/typescript/lib/tsserver.js:30152:24)
    at Object.forEachChild ([node_modules_dir]/typescript/lib/tsserver.js:30330:24)
    at processNode ([node_modules_dir]/typescript/lib/tsserver.js:145381:20)
    at processChildNode ([node_modules_dir]/typescript/lib/tsserver.js:145449:21)
    at [node_modules_dir]/typescript/lib/tsserver.js:145382:21
    at visitNode ([node_modules_dir]/typescript/lib/tsserver.js:30147:24)
    at Object.forEachChild ([node_modules_dir]/typescript/lib/tsserver.js:30242:21)
    at processNode ([node_modules_dir]/typescript/lib/tsserver.js:145381:20)
    at processChildNode ([node_modules_dir]/typescript/lib/tsserver.js:145449:21)
    at processChildNodes ([node_modules_dir]/typescript/lib/tsserver.js:145496:48)
    at [node_modules_dir]/typescript/lib/tsserver.js:145384:21
    at visitNodes ([node_modules_dir]/typescript/lib/tsserver.js:30152:24)
    at Object.forEachChild ([node_modules_dir]/typescript/lib/tsserver.js:30304:21)
    at processNode ([node_modules_dir]/typescript/lib/tsserver.js:145381:20)
    at formatSpanWorker ([node_modules_dir]/typescript/lib/tsserver.js:145182:17)
    at [node_modules_dir]/typescript/lib/tsserver.js:145146:140
    at Object.getFormattingScanner ([node_modules_dir]/typescript/lib/tsserver.js:143773:23)
    at Object.formatNodeGivenIndentation ([node_modules_dir]/typescript/lib/tsserver.js:145146:31)
    at [node_modules_dir]/typescript/lib/tsserver.js:131006:46
    at Object.flatMap ([node_modules_dir]/typescript/lib/tsserver.js:508:25)
    at getEntryForMemberCompletion ([node_modules_dir]/typescript/lib/tsserver.js:131004:38)
    at createCompletionEntry ([node_modules_dir]/typescript/lib/tsserver.js:130828:23)
    at getCompletionEntriesFromSymbols ([node_modules_dir]/typescript/lib/tsserver.js:131194:29)
    at completionInfoFromData ([node_modules_dir]/typescript/lib/tsserver.js:130646:17)
    at Object.getCompletionsAtPosition ([node_modules_dir]/typescript/lib/tsserver.js:130507:36)
    at Object.getCompletionsAtPosition ([node_modules_dir]/typescript/lib/tsserver.js:163069:35)
    at IpcIOSession.Session.getCompletions ([node_modules_dir]/typescript/lib/tsserver.js:174630:64)
    at Session.handlers.ts.Map.ts.getEntries._a.<computed> ([node_modules_dir]/typescript/lib/tsserver.js:173451:61)
    at [node_modules_dir]/typescript/lib/tsserver.js:175346:88
    at IpcIOSession.Session.executeWithRequestId ([node_modules_dir]/typescript/lib/tsserver.js:175337:28)
    at IpcIOSession.Session.executeCommand ([node_modules_dir]/typescript/lib/tsserver.js:175346:33)
    at IpcIOSession.Session.onMessage ([node_modules_dir]/typescript/lib/tsserver.js:175372:35)
    at process.<anonymous> ([node_modules_dir]/typescript/lib/tsserver.js:178007:31)
    at process.emit (events.js:315:20)
    at emit (internal/child_process.js:903:12)
    at processTicksAndRejections (internal/process/task_queues.js:81:21)

That's one minimal example. The more motivating example is completion for all React class components.

interface Component<P = {}, S = {}, SS = any> { }
declare class Component<P, S> {
  setState<K extends keyof S>(
    state: ((prevState: Readonly<S>, props: Readonly<P>) => (Pick<S, K> | S | null)) | (Pick<S, K> | S | null),
    callback?: () => void
  ): void;
}

export class Thing extends Component<{}> {
    /*$*/
}
Reactions are currently unavailable

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptA bug in TypeScriptCrashFor flagging bugs which are compiler or service crashes or unclean exits, rather than bad outputFor flagging bugs which are compiler or service crashes or unclean exits, rather than bad outputDomain: LS: Completion ListsThe issue relates to showing completion lists in an editorThe issue relates to showing completion lists in an editorFix AvailableA PR has been opened for this issueA PR has been opened for this issue

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.