Skip to content

Shorthand properties with = cause assertion failures in consumeTokenAndAdvanceScanner #52137

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
DanielRosenwasser opened this issue Jan 7, 2023 · 3 comments · Fixed by #52816
Assignees
Labels
Bug A bug in TypeScript Domain: Formatter The issue relates to the built-in formatter Domain: Quick Fixes Editor-provided fixes, often called code actions. Domain: Refactorings e.g. extract to constant or function, rename symbol Domain: Transforms Relates to the public transform API Effort: Moderate Requires experience with the TypeScript codebase, but feasible. Harder than "Effort: Casual". Fix Available A PR has been opened for this issue Help Wanted You can do this

Comments

@DanielRosenwasser
Copy link
Member

DanielRosenwasser commented Jan 7, 2023

Repro-ish of #52029

File: foo.tsx

let React: any;

let foo = 10;

let x =
    <div abc={{ foo = 10 }}></div>
    <div abc={{ foo = 10 }}></div>

Request the "Wrap in JSX Fragment" quick fix.

Call Stack
Response received: getCodeFixes (3145). Request took 8 ms. Success: false . Message: Error processing request. Debug Failure. False expression.
Error: Debug Failure. False expression.
    at consumeTokenAndAdvanceScanner ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:165008:13)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164917:9)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164856:9
    at visitNode2 ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29360:18)
    at forEachChildInShorthandPropertyAssignment ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29404:234)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164932:7)
    at processChildNodes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164975:32)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164869:9
    at visitNodes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29365:14)
    at forEachChildInObjectLiteralExpression ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29517:12)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164932:7)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164856:9
    at visitNode2 ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29360:18)
    at forEachChildInJsxExpression ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29744:55)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164932:7)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164856:9
    at visitNode2 ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29360:18)
    at forEachChildInJsxAttribute ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29738:45)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164932:7)
    at processChildNodes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164975:32)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164869:9
    at visitNodes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29365:14)
    at forEachChildInJsxAttributes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29735:12)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164932:7)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164856:9
    at visitNode2 ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29360:18)
    at forEachChildInJsxOpeningOrSelfClosingElement ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29848:97)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164932:7)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164856:9
    at visitNode2 ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29360:18)
    at forEachChildInJsxElement ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29727:12)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164932:7)
    at processChildNodes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164975:32)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164869:9
    at visitNodes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29365:14)
    at forEachChildInJsxFragment ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29730:56)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at formatSpanWorker ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164661:5)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164601:105
    at getFormattingScanner ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:163421:15)
    at Object.formatNodeGivenIndentation ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164601:10)
    at getFormattedTextOfNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162819:43)
    at format ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162799:27)
    at computeNewText ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162800:219)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162761:25
    at mapDefined ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:3064:22)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162759:28
    at mapDefined ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:3064:22)
    at Object.getTextChangesFromChanges ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162753:12)
    at ChangeTracker.getChanges ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162641:35)
    at ChangeTracker.with ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162139:20)
    at Object.getCodeActionsToWrapJsxInFragment [as getCodeActions] ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:146311:62)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:137137:46
    at flatMap ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:2975:17)
    at Object.getFixes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:137137:10)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:134310:33
    at flatMap ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:2975:17)
    at Object.getCodeFixesAtPosition ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:134308:12)
    at IpcIOSession.getCodeFixes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:176836:50)
    at getCodeFixes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:174969:43)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:177138:69
    at IpcIOSession.executeWithRequestId ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:177130:14)
    at IpcIOSession.executeCommand ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:177138:29)
    at IpcIOSession.onMessage ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:177180:51)
    at process.<anonymous> ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:178655:14)
    at process.emit (node:events:526:28)

Notes

  • Doesn't repro if there is a newline at the beginning of the file.
  • Doesn't repro with a declare modifier on any of the lets
  • Doesn't repro if the JSX is contained in a function
  • Doesn't repro if there's a trailing ; gotta come back to this - might be a Heisenbug
@DanielRosenwasser DanielRosenwasser changed the title Assertion failure in JSX fragments quick fix Object shorthands with = causes assertion failures in consumeTokenAndAdvanceScanner Jan 7, 2023
@DanielRosenwasser DanielRosenwasser changed the title Object shorthands with = causes assertion failures in consumeTokenAndAdvanceScanner Object shorthands with = cause assertion failures in consumeTokenAndAdvanceScanner Jan 7, 2023
@DanielRosenwasser
Copy link
Member Author

Similar:

declare let x: any, y: any, asd: any;

let obj = [|{
    ...{ x = { lol = 10 }},
    ...{ y = 20}
}|];

Extract constant on that range.

Call Stack
Error processing request. Debug Failure. False expression.
Error: Debug Failure. False expression.
    at consumeTokenAndAdvanceScanner ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:165008:13)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164917:9)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164856:9
    at visitNode2 ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29360:18)
    at forEachChildInShorthandPropertyAssignment ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29404:234)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164932:7)
    at processChildNodes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164975:32)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164869:9
    at visitNodes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29365:14)
    at forEachChildInObjectLiteralExpression ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29517:12)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164932:7)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164856:9
    at visitNode2 ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29360:18)
    at forEachChildInSpreadAssignment ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29407:12)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164932:7)
    at processChildNodes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164975:32)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164869:9
    at visitNodes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29365:14)
    at forEachChildInObjectLiteralExpression ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29517:12)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164932:7)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164856:9
    at visitNode2 ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29360:18)
    at forEachChildInVariableDeclaration ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29422:123)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164932:7)
    at processChildNodes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164975:32)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164869:9
    at visitNodes ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29365:14)
    at forEachChildInVariableDeclarationList ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29587:12)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at processChildNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164932:7)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164856:9
    at visitNode2 ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29360:18)
    at forEachChildInVariableStatement ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29584:114)
    at forEachChild ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:29873:35)
    at processNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164853:5)
    at formatSpanWorker ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164661:5)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164601:105
    at getFormattingScanner ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:163421:15)
    at Object.formatNodeGivenIndentation ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:164601:10)
    at getFormattedTextOfNode ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162819:43)
    at format ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162799:27)
    at computeNewText ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162800:219)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162761:25
    at mapDefined ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:3064:22)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162759:28
    at mapDefined ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:3064:22)
    at Object.getTextChangesFromChanges ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162753:12)
    at ChangeTracker.getChanges ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:162641:35)
    at extractConstantInScope ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:159682:31)
    at getConstantExtractionAtIndex ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:159176:10)
    at Object.getRefactorEditsToExtractSymbol [as getEditsForAction] ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:158803:12)
    at Object.getEditsForRefactor ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:155509:31)
    at Object.getEditsForRefactor2 [as getEditsForRefactor] ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:134686:32)
    at IpcIOSession.getEditsForRefactor ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:176763:49)
    at getEditsForRefactor ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:175006:43)
    at [User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:177138:69
    at IpcIOSession.executeWithRequestId ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:177130:14)
    at IpcIOSession.executeCommand ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:177138:29)
    at IpcIOSession.onMessage ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:177180:51)
    at process.<anonymous> ([User_Dir]/.vscode-insiders/extensions/ms-vscode.vscode-typescript-next-5.0.202301050/node_modules/typescript/lib/tsserver.js:178655:14)
    at process.emit (node:events:526:28)

@DanielRosenwasser
Copy link
Member Author

DanielRosenwasser commented Jan 7, 2023

I'm going to guess that these have to do with visitEachChild not iterating over the equalsToken, whereas forEachChild will. This is presumably because equalsToken is used solely for parser recovery reporting grammar errors later, whereas our factory functions don't even anticipate this - so visitEachChild never had to handle it at all.

So when visitEachChild is used to assign new positions to the generated nodes

const visited = visitEachChild(node, assignPositionsToNode, textChangesTransformationContext, assignPositionsToNodeArray, assignPositionsToNode);

it doesn't update the old equalsToken node.

Later on, forEachChild ensures that the range is contained

Debug.assert(rangeContainsRange(parent, currentTokenInfo.token));

and it's not.

@rbuckton previously left a comment in the parser about this - so maybe we can get rid of equalsToken altogether?

// TODO(rbuckton): Consider manufacturing this when we need to report an error as it is otherwise not useful.
node.equalsToken = equalsToken;

@DanielRosenwasser DanielRosenwasser changed the title Object shorthands with = cause assertion failures in consumeTokenAndAdvanceScanner Shorthand properties with = cause assertion failures in consumeTokenAndAdvanceScanner Jan 7, 2023
@DanielRosenwasser DanielRosenwasser added Bug A bug in TypeScript Help Wanted You can do this Effort: Moderate Requires experience with the TypeScript codebase, but feasible. Harder than "Effort: Casual". Domain: Formatter The issue relates to the built-in formatter Domain: Transforms Relates to the public transform API Domain: Refactorings e.g. extract to constant or function, rename symbol Domain: Quick Fixes Editor-provided fixes, often called code actions. labels Jan 9, 2023
@fatcerberus
Copy link

This is what happens when you consume too many tokens 🐽

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug A bug in TypeScript Domain: Formatter The issue relates to the built-in formatter Domain: Quick Fixes Editor-provided fixes, often called code actions. Domain: Refactorings e.g. extract to constant or function, rename symbol Domain: Transforms Relates to the public transform API Effort: Moderate Requires experience with the TypeScript codebase, but feasible. Harder than "Effort: Casual". Fix Available A PR has been opened for this issue Help Wanted You can do this
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants