Closed
Description
TypeScript Version: 3.8.0-dev.20191126
Search Terms: Extract refactorings
Code
function foo(bar?: number) {
bar?.toString();
}
Select bar?.toString();
and try to use any of the extract refactorings in Visual Studio Code.
Expected behavior:
Refactorings work like they do without optional chaining.
Actual behavior:
<semantic> TypeScript Server Error (3.8.0-dev.20191126)
Debug Failure. False expression.
Error: Debug Failure. False expression.
at getPos (tsserver.js:119431:22)
at assignPositionsToNode (tsserver.js:120172:27)
at visitNode (tsserver.js:70948:23)
at Object.visitEachChild (tsserver.js:71165:117)
at assignPositionsToNode (tsserver.js:120169:30)
at visitNode (tsserver.js:70948:23)
at Object.visitEachChild (tsserver.js:71175:53)
at assignPositionsToNode (tsserver.js:120169:30)
at visitNode (tsserver.js:70948:23)
at Object.visitEachChild (tsserver.js:71261:224)
at assignPositionsToNode (tsserver.js:120169:30)
at Object.visitNodes (tsserver.js:70999:48)
at assignPositionsToNodeArray (tsserver.js:120177:30)
at Object.visitEachChild (tsserver.js:71263:63)
at assignPositionsToNode (tsserver.js:120169:30)
at visitNode (tsserver.js:70948:23)
at Object.visitEachChild (tsserver.js:71229:111)
at assignPositionsToNode (tsserver.js:120169:30)
at getNonformattedText (tsserver.js:120153:56)
at getFormattedTextOfNode (tsserver.js:120134:26)
at format (tsserver.js:120117:52)
at computeNewText (tsserver.js:120120:23)
at tsserver.js:120090:89
at Array.map (<anonymous>)
at tsserver.js:120089:50
at Array.map (<anonymous>)
at Object.getTextChangesFromChanges (tsserver.js:120075:86)
at ChangeTracker.getChanges (tsserver.js:120045:45)
at extractConstantInScope (tsserver.js:127538:43)
at getConstantExtractionAtIndex (tsserver.js:127134:24)
at Object.getEditsForAction (tsserver.js:126727:28)
at Object.getEditsForRefactor (tsserver.js:120662:41)
at Proxy.getEditsForRefactor (tsserver.js:131547:32)
at IOSession.Session.getEditsForRefactor (tsserver.js:140903:59)
at Session.handlers.ts.createMapFromTemplate._a.<computed> (tsserver.js:139754:61)
at tsserver.js:141141:88
at IOSession.Session.executeWithRequestId (tsserver.js:141132:28)
at IOSession.Session.executeCommand (tsserver.js:141141:33)
at IOSession.Session.onMessage (tsserver.js:141164:35)
at Interface.<anonymous> (tsserver.js:142479:27)
at Interface.emit (events.js:200:13)
at Interface._onLine (readline.js:314:10)
at Interface._normalWrite (readline.js:459:12)
at Socket.ondata (readline.js:170:10)
at Socket.emit (events.js:200:13)
at addChunk (_stream_readable.js:294:12)
at readableAddChunk (_stream_readable.js:275:11)
at Socket.Readable.push (_stream_readable.js:210:10)
at Pipe.onStreamRead (internal/stream_base_commons.js:166:17)