Skip to content

Refactorings with optional chaining fail #35372

Closed
@spencersutton

Description

@spencersutton

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)

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptFix AvailableA PR has been opened for this issue

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions