diff --git a/src/MongoDB.Analyzer/Core/Builders/AnalysisCodeGenerator.cs b/src/MongoDB.Analyzer/Core/Builders/AnalysisCodeGenerator.cs index 400aa80d..329bce9a 100644 --- a/src/MongoDB.Analyzer/Core/Builders/AnalysisCodeGenerator.cs +++ b/src/MongoDB.Analyzer/Core/Builders/AnalysisCodeGenerator.cs @@ -34,7 +34,7 @@ static AnalysisCodeGenerator() s_parseOptions = mqlGeneratorSyntaxTree.Options; } - public static CompilationResult Compile(MongoAnalyzerContext context, ExpressionsAnalysis buildersExpressionAnalysis) + public static CompilationResult Compile(MongoAnalysisContext context, ExpressionsAnalysis buildersExpressionAnalysis) { var semanticModel = context.SemanticModelAnalysisContext.SemanticModel; var referencesContainer = ReferencesProvider.GetReferences(semanticModel.Compilation.References, context.Logger); diff --git a/src/MongoDB.Analyzer/Core/Builders/BuilderExpressionProcessor.cs b/src/MongoDB.Analyzer/Core/Builders/BuilderExpressionProcessor.cs index 6f57ba9e..c2153d98 100644 --- a/src/MongoDB.Analyzer/Core/Builders/BuilderExpressionProcessor.cs +++ b/src/MongoDB.Analyzer/Core/Builders/BuilderExpressionProcessor.cs @@ -54,7 +54,7 @@ public RewriteResult(SyntaxNode NodeToReplace, SyntaxNode NewNode) : public static RewriteResult Invalid = new(RewriteAction.Invalid, null, null); } - public static ExpressionsAnalysis ProcessSemanticModel(MongoAnalyzerContext context) + public static ExpressionsAnalysis ProcessSemanticModel(MongoAnalysisContext context) { var semanticModel = context.SemanticModelAnalysisContext.SemanticModel; var syntaxTree = semanticModel.SyntaxTree; @@ -63,7 +63,7 @@ public static ExpressionsAnalysis ProcessSemanticModel(MongoAnalyzerContext cont var analysisContexts = new List(); var invalidExpressionNodes = new List(); - var typesProcessor = new TypesProcessor(); + var typesProcessor = context.TypesProcessor; var nodesProcessed = new HashSet(); var buildersToAnalysisContextMap = context.Settings.EnableVariableTracking ? new Dictionary() : null; diff --git a/src/MongoDB.Analyzer/Core/Builders/BuildersAnalyzer.cs b/src/MongoDB.Analyzer/Core/Builders/BuildersAnalyzer.cs index 0c4fc6de..3d9fc021 100644 --- a/src/MongoDB.Analyzer/Core/Builders/BuildersAnalyzer.cs +++ b/src/MongoDB.Analyzer/Core/Builders/BuildersAnalyzer.cs @@ -18,7 +18,7 @@ namespace MongoDB.Analyzer.Core.Builders; internal static class BuildersAnalyzer { - public static bool AnalyzeBuilders(MongoAnalyzerContext context) + public static bool AnalyzeBuilders(MongoAnalysisContext context) { var sw = Stopwatch.StartNew(); var stats = AnalysisStats.Empty; @@ -50,7 +50,7 @@ public static bool AnalyzeBuilders(MongoAnalyzerContext context) return telemetry.ExpressionsFound > 0; } - private static AnalysisStats ReportMqlOrInvalidExpressions(MongoAnalyzerContext context, ExpressionsAnalysis buildersAnalysis) + private static AnalysisStats ReportMqlOrInvalidExpressions(MongoAnalysisContext context, ExpressionsAnalysis buildersAnalysis) { var semanticContext = context.SemanticModelAnalysisContext; if (buildersAnalysis.AnalysisNodeContexts.EmptyOrNull()) diff --git a/src/MongoDB.Analyzer/Core/Linq/AnalysisCodeGenerator.cs b/src/MongoDB.Analyzer/Core/Linq/AnalysisCodeGenerator.cs index 105dc73f..9521878d 100644 --- a/src/MongoDB.Analyzer/Core/Linq/AnalysisCodeGenerator.cs +++ b/src/MongoDB.Analyzer/Core/Linq/AnalysisCodeGenerator.cs @@ -38,7 +38,7 @@ static AnalysisCodeGenerator() s_parseOptions = mqlGeneratorSyntaxTree.Options; } - public static CompilationResult Compile(MongoAnalyzerContext context, ExpressionsAnalysis linqExpressionAnalysis) + public static CompilationResult Compile(MongoAnalysisContext context, ExpressionsAnalysis linqExpressionAnalysis) { var semanticModel = context.SemanticModelAnalysisContext.SemanticModel; var referencesContainer = ReferencesProvider.GetReferences(semanticModel.Compilation.References, context.Logger); diff --git a/src/MongoDB.Analyzer/Core/Linq/LinqAnalyzer.cs b/src/MongoDB.Analyzer/Core/Linq/LinqAnalyzer.cs index e574324c..854a90b0 100644 --- a/src/MongoDB.Analyzer/Core/Linq/LinqAnalyzer.cs +++ b/src/MongoDB.Analyzer/Core/Linq/LinqAnalyzer.cs @@ -18,7 +18,7 @@ namespace MongoDB.Analyzer.Core.Linq; internal static class LinqAnalyzer { - public static bool AnalyzeIMongoQueryable(MongoAnalyzerContext context) + public static bool AnalyzeIMongoQueryable(MongoAnalysisContext context) { var sw = Stopwatch.StartNew(); var stats = AnalysisStats.Empty; @@ -51,7 +51,7 @@ public static bool AnalyzeIMongoQueryable(MongoAnalyzerContext context) return telemetry.ExpressionsFound > 0; } - private static void ReportInvalidExpressions(MongoAnalyzerContext context, ExpressionsAnalysis linqExpressionAnalysis) + private static void ReportInvalidExpressions(MongoAnalysisContext context, ExpressionsAnalysis linqExpressionAnalysis) { var semanticContext = context.SemanticModelAnalysisContext; @@ -74,7 +74,7 @@ private static void ReportInvalidExpressions(MongoAnalyzerContext context, Expre } } - private static AnalysisStats ReportMqlOrInvalidExpressions(MongoAnalyzerContext context, ExpressionsAnalysis linqExpressionAnalysis) + private static AnalysisStats ReportMqlOrInvalidExpressions(MongoAnalysisContext context, ExpressionsAnalysis linqExpressionAnalysis) { var semanticContext = context.SemanticModelAnalysisContext; diff --git a/src/MongoDB.Analyzer/Core/Linq/LinqExpressionProcessor.cs b/src/MongoDB.Analyzer/Core/Linq/LinqExpressionProcessor.cs index fcac44a8..022a3490 100644 --- a/src/MongoDB.Analyzer/Core/Linq/LinqExpressionProcessor.cs +++ b/src/MongoDB.Analyzer/Core/Linq/LinqExpressionProcessor.cs @@ -45,7 +45,7 @@ public RewriteResult(SyntaxNode NodeToReplace, SyntaxNode NewNode) : public static RewriteResult Invalid = new(RewriteAction.Invalid, null, null); } - public static ExpressionsAnalysis ProcessSemanticModel(MongoAnalyzerContext context) + public static ExpressionsAnalysis ProcessSemanticModel(MongoAnalysisContext context) { var semanticModel = context.SemanticModelAnalysisContext.SemanticModel; var syntaxTree = semanticModel.SyntaxTree; @@ -55,7 +55,7 @@ public static ExpressionsAnalysis ProcessSemanticModel(MongoAnalyzerContext cont var analysisContexts = new List(); var invalidExpressionNodes = new List(); - var typesProcessor = new TypesProcessor(); + var typesProcessor = context.TypesProcessor; foreach (var node in root.DescendantNodesWithSkipList(processedSyntaxNodes).OfType()) { diff --git a/src/MongoDB.Analyzer/Core/AnalysisContext.cs b/src/MongoDB.Analyzer/Core/MongoAnalysisContext.cs similarity index 91% rename from src/MongoDB.Analyzer/Core/AnalysisContext.cs rename to src/MongoDB.Analyzer/Core/MongoAnalysisContext.cs index dad30876..dc46b3e6 100644 --- a/src/MongoDB.Analyzer/Core/AnalysisContext.cs +++ b/src/MongoDB.Analyzer/Core/MongoAnalysisContext.cs @@ -14,9 +14,10 @@ namespace MongoDB.Analyzer.Core; -internal record MongoAnalyzerContext( +internal record MongoAnalysisContext( SemanticModelAnalysisContext SemanticModelAnalysisContext, MongoDBAnalyzerSettings Settings, + TypesProcessor TypesProcessor, Logger Logger, ITelemetryService Telemetry) { diff --git a/src/MongoDB.Analyzer/MongoDBDiagnosticAnalyzer.cs b/src/MongoDB.Analyzer/MongoDBDiagnosticAnalyzer.cs index c90693ba..fa3520ae 100644 --- a/src/MongoDB.Analyzer/MongoDBDiagnosticAnalyzer.cs +++ b/src/MongoDB.Analyzer/MongoDBDiagnosticAnalyzer.cs @@ -41,7 +41,8 @@ public static void SemanticModelAction(SemanticModelAnalysisContext context) using var telemetryService = SettingsHelper.CreateTelemetryService(settings, correlationId); using var logger = SettingsHelper.CreateLogger(settings, correlationId); - var mongoAnalyzerContext = new MongoAnalyzerContext(context, settings, logger, telemetryService); + var typesProcessor = new TypesProcessor(); + var mongoAnalyzerContext = new MongoAnalysisContext(context, settings, typesProcessor, logger, telemetryService); var flushTelemetry = false; try