Skip to content

Error thrown on async refactoring #27301

@DanielRosenwasser

Description

@DanielRosenwasser
function delay(millis: number): Promise<void> {
    throw "no"
}

main();

function main() {
    console.log("Please wait. Loading.");
    return delay(500)
        .then(() => console.log("."))
        .then(() => delay(500))
        .then(() => console.log("."))
        .then(() => delay(500))
        .then(() => console.log("."))
        .then(() => delay(500))
        .then(() => console.log("All done!"));
}

function main2() {
    console.log("Please wait. Loading.");
    return delay(500)
        .then(() => { console.log("."); return delay(500); })
        .then(() => { console.log("."); return delay(500); })
        .then(() => { console.log("."); return delay(500); })
}

Try to refactor main and main2 to async functions, and expect them to look relatively identical.

Instead, refactoring main2 causes the following error

[Error  - 10:33:36 AM] 'getCodeFixes' request failed with error.
Error processing request. Cannot read property 'identifier' of undefined
TypeError: Cannot read property 'identifier' of undefined
    at getTransformationBody (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:107213:72)
    at transformThen (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:107126:38)
    at transformExpression (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:107061:24)
    at transformExpression (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:107067:24)
    at transformThen (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:107135:20)
    at transformExpression (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:107061:24)
    at startTransformation (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:106889:32)
    at visit (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:106895:25)
    at visitNode (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:15841:24)
    at Object.forEachChild (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:16116:24)
    at _loop_10 (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:106893:20)
    at convertToAsyncFunction (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:106904:17)
    at C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:106853:96
    at Function.ChangeTracker.with (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:105472:17)
    at Object.getCodeActions (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:106853:64)
    at C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:106422:121
    at Object.flatMap (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:499:25)
    at Object.getFixes (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:106422:23)
    at C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:115142:35
    at Object.flatMap (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:499:25)
    at Object.getCodeFixesAtPosition (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:115140:23)
    at IOSession.Session.getCodeFixes (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:122942:64)
    at Session.handlers.ts.createMapFromTemplate._a.(anonymous function) (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:121806:61)
    at C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:123099:88
    at IOSession.Session.executeWithRequestId (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:123090:28)
    at IOSession.Session.executeCommand (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:123099:33)
    at IOSession.Session.onMessage (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:123119:35)
    at Interface.<anonymous> (C:\Users\Daniel\AppData\Local\nvs\node\10.4.1\x64\node_modules\typescript\lib\tsserver.js:124383:27)
    at emitOne (events.js:116:13)
    at Interface.emit (events.js:211:7)
    at Interface._onLine (readline.js:282:10)
    at Interface._normalWrite (readline.js:424:12)
    at Socket.ondata (readline.js:141:10)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    at addChunk (_stream_readable.js:263:12)
    at readableAddChunk (_stream_readable.js:250:11)
    at Socket.Readable.push (_stream_readable.js:208:10)
    at Pipe.onread (net.js:594:20)

Metadata

Metadata

Labels

BugA bug in TypeScriptDomain: Refactoringse.g. extract to constant or function, rename symbol

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions