Fixed regression that prevented module-level code complexity diagnostic from being skipped.

This commit is contained in:
Eric Traut 2022-11-08 21:20:20 -08:00
parent db994ba9ba
commit 95cb1d4a70

View File

@ -259,6 +259,23 @@ export class Checker extends ParseTreeWalker {
this._conditionallyReportShadowedModule();
// Report code complexity issues for the module.
const codeComplexity = AnalyzerNodeInfo.getCodeFlowComplexity(this._moduleNode);
if (isPrintCodeComplexityEnabled) {
console.log(`Code complexity of module ${this._fileInfo.filePath} is ${codeComplexity.toString()}`);
}
if (codeComplexity > maxCodeComplexity) {
this._evaluator.addDiagnosticForTextRange(
this._fileInfo,
this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues,
DiagnosticRule.reportGeneralTypeIssues,
Localizer.Diagnostic.codeTooComplexToAnalyze(),
{ start: 0, length: 0 }
);
}
this._walkStatementsAndReportUnreachable(this._moduleNode.statements);
// Mark symbols accessed by __all__ as accessed.
@ -306,26 +323,6 @@ export class Checker extends ParseTreeWalker {
return true;
}
override visitModule(node: ModuleNode): boolean {
const codeComplexity = AnalyzerNodeInfo.getCodeFlowComplexity(node);
if (isPrintCodeComplexityEnabled) {
console.log(`Code complexity of module ${this._fileInfo.filePath} is ${codeComplexity.toString()}`);
}
if (codeComplexity > maxCodeComplexity) {
this._evaluator.addDiagnosticForTextRange(
this._fileInfo,
this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues,
DiagnosticRule.reportGeneralTypeIssues,
Localizer.Diagnostic.codeTooComplexToAnalyze(),
{ start: 0, length: 0 }
);
}
return true;
}
override visitClass(node: ClassNode): boolean {
const classTypeResult = this._evaluator.getTypeOfClass(node);