Skip to content

Shorthand properties with = cause assertion failures in consumeTokenAndAdvanceScanner #52137

@DanielRosenwasser

Description

@DanielRosenwasser

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

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptDomain: FormatterThe issue relates to the built-in formatterDomain: Quick FixesEditor-provided fixes, often called code actions.Domain: Refactoringse.g. extract to constant or function, rename symbolDomain: TransformsRelates to the public transform APIEffort: ModerateRequires experience with the TypeScript codebase, but feasible. Harder than "Effort: Casual".Fix AvailableA PR has been opened for this issueHelp WantedYou can do this

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions