-
Notifications
You must be signed in to change notification settings - Fork 13.2k
Open
Labels
7.0 LS MigrationBugA bug in TypeScriptA bug in TypeScriptDomain: LS: Suggestion DiagnosticsNon-error squiggles that appear in the editor suggesting that you should do somethingNon-error squiggles that appear in the editor suggesting that you should do something
Milestone
Description
🔎 Search Terms
tsc: "Cannot read properties of undefined (reading 'parent')" getThisType getSuggestionDiagnostics
🕗 Version & Regression Information
- This changed between versions ______ and _______
- This changed in commit or PR _______
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about _________
- I was unable to test this on prior versions because _______
⏯ Playground Link
No response
💻 Code
I have an ESLint rule where I'm getting the TS diagnostics to report deprecations.
While linting a project with JS code, the rule crashes. I managed to get the very minimum reproducer with a TS program with this file:
//test.js
/**
* @param {String}
* @return {this}
*/
Foo.prototype.on = function(type) {
return this;
};and a tsconfig.json with the following contents:
{
"compilerOptions": {
"allowJs": true,
"noImplicitAny": true
},
"files": ["test.js]
}
const sourceFile = program.getSourceFile('test.js');
const diagnostics: ts.DiagnosticWithLocation[] = checker.getSuggestionDiagnostics(sourceFile);🙁 Actual behavior
It crashes with error:
TypeError: Cannot read properties of undefined (reading 'parent')
at eval (eval at getThisType (C:\projects\test\node_modules\typescript\lib\typescript.js:66507:7), <anonymous>:1:35)
at getThisType (C:\projects\test\node_modules\typescript\lib\typescript.js:66507:7)
at getTypeFromThisTypeNode (C:\projects\test\node_modules\typescript\lib\typescript.js:66518:28)
at getTypeFromTypeNodeWorker (C:\projects\test\node_modules\typescript\lib\typescript.js:66586:16)
at getTypeFromTypeNode (C:\projects\test\node_modules\typescript\lib\typescript.js:66552:41)
at getReturnTypeFromAnnotation (C:\projects\test\node_modules\typescript\lib\typescript.js:63200:14)
at checkFunctionExpressionOrObjectLiteralMethodDeferred (C:\projects\test\node_modules\typescript\lib\typescript.js:82410:24)
at checkDeferredNode (C:\projects\test\node_modules\typescript\lib\typescript.js:89929:9)
at Set.forEach (<anonymous>)
at checkDeferredNodes (C:\projects\test\node_modules\typescript\lib\typescript.js:89907:27)
🙂 Expected behavior
When I remove the JSDoc or I extend the prototype of a known object, this does not crash. I would expect checker.getSuggestionDiagnostics(sourceFile) to return an empty array.
Additional information about the issue
No response
saberduck and zglicz
Metadata
Metadata
Assignees
Labels
7.0 LS MigrationBugA bug in TypeScriptA bug in TypeScriptDomain: LS: Suggestion DiagnosticsNon-error squiggles that appear in the editor suggesting that you should do somethingNon-error squiggles that appear in the editor suggesting that you should do something