TypeScript Version: 3.4.0-rc
Bug
While editing some code in VS Code, I saw this error. Sorry no repo steps yet
ERR TypeScript Server Error (3.4.0-rc)
Cannot read property 'parent' of undefined
TypeError: Cannot read property 'parent' of undefined
at collectEnclosingScopes (tsserver.js:117195:127)
at getPossibleExtractionsWorker (tsserver.js:117275:30)
at getPossibleExtractions (tsserver.js:117232:26)
at Object.getAvailableActions (tsserver.js:116745:35)
at tsserver.js:111488:128
at getIterator (tsserver.js:625:23)
at Object.next (tsserver.js:620:35)
at Object.arrayFrom (tsserver.js:1253:32)
at Object.getApplicableRefactors (tsserver.js:111487:23)
at Proxy.getApplicableRefactors (tsserver.js:121287:32)
at IOSession.Session.getApplicableRefactors (tsserver.js:130013:53)
at Session.handlers.ts.createMapFromTemplate._a.(anonymous function) (tsserver.js:128853:61)
at tsserver.js:130237:88
at IOSession.Session.executeWithRequestId (tsserver.js:130228:28)
at IOSession.Session.executeCommand (tsserver.js:130237:33)
at IOSession.Session.onMessage (tsserver.js:130259:35)
at Interface.<anonymous> (tsserver.js:131556:27)
at Interface.emit (events.js:182:13)
at Interface._onLine (readline.js:290:10)
at Interface._normalWrite (readline.js:433:12)
at Socket.ondata (readline.js:149:10)
at Socket.emit (events.js:182:13)
at addChunk (_stream_readable.js:279:12)
at readableAddChunk (_stream_readable.js:264:11)
at Socket.Readable.push (_stream_readable.js:219:10)
at Pipe.onread (net.js:636:20): Error: TypeScript Server Error (3.4.0-rc)
The only place this could happen in the code is here:
while (true) {
current = current.parent;
// A function parameter's initializer is actually in the outer scope, not the function declaration
if (current.kind === SyntaxKind.Parameter) {
// Skip all the way to the outer scope of the function that declared this parameter
current = findAncestor(current, parent => isFunctionLikeDeclaration(parent))!.parent;
}
I'm guessing we found a parameter inside a JSDoc near the top level and then tried to walk up to the enclosing function decl, but didn't find one and bottomed out.
findAncestor(...)!
is very suspect and it'd be nice to ban it...
I got a similar error:
Version: typescript 3.7.0-dev.20191017
ERROR in ./node_modules/hammerjs/hammer.js
Module build failed (from ./node_modules/ts-loader/index.js):
TypeError: Cannot read property 'parent' of undefined
at getOuterTypeParameters (/<redacted>/node_modules/typescript/lib/typescript.js:39886:29)
at getOuterTypeParametersOfClassOrInterface (/<redacted>/node_modules/typescript/lib/typescript.js:39944:20)
at getDeclaredTypeOfClassOrInterface (/<redacted>/node_modules/typescript/lib/typescript.js:40217:43)
at createAnonymousTypeNode (/<redacted>/node_modules/typescript/lib/typescript.js:36601:59)
at typeToTypeNodeHelper (/<redacted>/node_modules/typescript/lib/typescript.js:36547:28)
at /<redacted>/node_modules/typescript/lib/typescript.js:36336:106
at withContext (/<redacted>/node_modules/typescript/lib/typescript.js:36381:37)
at Object.typeToTypeNode (/<redacted>/node_modules/typescript/lib/typescript.js:36336:28)
at typeToString (/<redacted>/node_modules/typescript/lib/typescript.js:36303:40)
at reportNonexistentProperty (/<redacted>/node_modules/typescript/lib/typescript.js:54143:165)
I also received a similar error:
TypeScript Versions: 3.7.1-rc
, 3.7.2
, 3.7.3-insiders.20191123
No error occurs <=3.6.4
TypeError: Cannot read property 'parent' of undefined
at Object.getDeclarationOfExpando (/<redacted>/node_modules/typescript/lib/tsc.js:8604:19)
at getTypeOfFuncClassEnumModule (/<redacted>/node_modules/typescript/lib/tsc.js:32596:40)
at getTypeOfSymbol (/<redacted>/node_modules/typescript/lib/tsc.js:32702:24)
at getExternalModuleMember (/<redacted>/node_modules/typescript/lib/tsc.js:28512:64)
at getTargetOfExportSpecifier (/<redacted>/node_modules/typescript/lib/tsc.js:28557:17)
at getTargetOfAliasDeclaration (/<redacted>/node_modules/typescript/lib/tsc.js:28600:28)
at resolveAlias (/<redacted>/node_modules/typescript/lib/tsc.js:28633:30)
at resolveSymbol (/<redacted>/node_modules/typescript/lib/tsc.js:28623:67)
at getSymbolIfSameReference (/<redacted>/node_modules/typescript/lib/tsc.js:29170:33)
at /<redacted>/node_modules/typescript/lib/tsc.js:29164:21
Most helpful comment
I also received a similar error:
TypeScript Versions:
3.7.1-rc
,3.7.2
,3.7.3-insiders.20191123
No error occurs
<=3.6.4