diff --git a/packages/pyright-internal/src/analyzer/checker.ts b/packages/pyright-internal/src/analyzer/checker.ts index f7c5f8cf1..5037e3b31 100644 --- a/packages/pyright-internal/src/analyzer/checker.ts +++ b/packages/pyright-internal/src/analyzer/checker.ts @@ -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);