Closed
Description
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<{}> {
/*$*/
}