Skip to content

Commit 216e053

Browse files
Merge pull request #36 from Ravi-Raghavan/VS-95
VS-95: Made TypesProcessor a shared instance between all Linq and Builders Operations
2 parents 2d32b23 + bdf9172 commit 216e053

File tree

8 files changed

+15
-13
lines changed

8 files changed

+15
-13
lines changed

src/MongoDB.Analyzer/Core/Builders/AnalysisCodeGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ static AnalysisCodeGenerator()
3434
s_parseOptions = mqlGeneratorSyntaxTree.Options;
3535
}
3636

37-
public static CompilationResult Compile(MongoAnalyzerContext context, ExpressionsAnalysis buildersExpressionAnalysis)
37+
public static CompilationResult Compile(MongoAnalysisContext context, ExpressionsAnalysis buildersExpressionAnalysis)
3838
{
3939
var semanticModel = context.SemanticModelAnalysisContext.SemanticModel;
4040
var referencesContainer = ReferencesProvider.GetReferences(semanticModel.Compilation.References, context.Logger);

src/MongoDB.Analyzer/Core/Builders/BuilderExpressionProcessor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public RewriteResult(SyntaxNode NodeToReplace, SyntaxNode NewNode) :
5454
public static RewriteResult Invalid = new(RewriteAction.Invalid, null, null);
5555
}
5656

57-
public static ExpressionsAnalysis ProcessSemanticModel(MongoAnalyzerContext context)
57+
public static ExpressionsAnalysis ProcessSemanticModel(MongoAnalysisContext context)
5858
{
5959
var semanticModel = context.SemanticModelAnalysisContext.SemanticModel;
6060
var syntaxTree = semanticModel.SyntaxTree;
@@ -63,7 +63,7 @@ public static ExpressionsAnalysis ProcessSemanticModel(MongoAnalyzerContext cont
6363
var analysisContexts = new List<ExpressionAnalysisContext>();
6464
var invalidExpressionNodes = new List<InvalidExpressionAnalysisNode>();
6565

66-
var typesProcessor = new TypesProcessor();
66+
var typesProcessor = context.TypesProcessor;
6767
var nodesProcessed = new HashSet<SyntaxNode>();
6868
var buildersToAnalysisContextMap = context.Settings.EnableVariableTracking ? new Dictionary<SyntaxNode, ExpressionAnalysisContext>() : null;
6969

src/MongoDB.Analyzer/Core/Builders/BuildersAnalyzer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ namespace MongoDB.Analyzer.Core.Builders;
1818

1919
internal static class BuildersAnalyzer
2020
{
21-
public static bool AnalyzeBuilders(MongoAnalyzerContext context)
21+
public static bool AnalyzeBuilders(MongoAnalysisContext context)
2222
{
2323
var sw = Stopwatch.StartNew();
2424
var stats = AnalysisStats.Empty;
@@ -50,7 +50,7 @@ public static bool AnalyzeBuilders(MongoAnalyzerContext context)
5050
return telemetry.ExpressionsFound > 0;
5151
}
5252

53-
private static AnalysisStats ReportMqlOrInvalidExpressions(MongoAnalyzerContext context, ExpressionsAnalysis buildersAnalysis)
53+
private static AnalysisStats ReportMqlOrInvalidExpressions(MongoAnalysisContext context, ExpressionsAnalysis buildersAnalysis)
5454
{
5555
var semanticContext = context.SemanticModelAnalysisContext;
5656
if (buildersAnalysis.AnalysisNodeContexts.EmptyOrNull())

src/MongoDB.Analyzer/Core/Linq/AnalysisCodeGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ static AnalysisCodeGenerator()
3838
s_parseOptions = mqlGeneratorSyntaxTree.Options;
3939
}
4040

41-
public static CompilationResult Compile(MongoAnalyzerContext context, ExpressionsAnalysis linqExpressionAnalysis)
41+
public static CompilationResult Compile(MongoAnalysisContext context, ExpressionsAnalysis linqExpressionAnalysis)
4242
{
4343
var semanticModel = context.SemanticModelAnalysisContext.SemanticModel;
4444
var referencesContainer = ReferencesProvider.GetReferences(semanticModel.Compilation.References, context.Logger);

src/MongoDB.Analyzer/Core/Linq/LinqAnalyzer.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ namespace MongoDB.Analyzer.Core.Linq;
1818

1919
internal static class LinqAnalyzer
2020
{
21-
public static bool AnalyzeIMongoQueryable(MongoAnalyzerContext context)
21+
public static bool AnalyzeIMongoQueryable(MongoAnalysisContext context)
2222
{
2323
var sw = Stopwatch.StartNew();
2424
var stats = AnalysisStats.Empty;
@@ -51,7 +51,7 @@ public static bool AnalyzeIMongoQueryable(MongoAnalyzerContext context)
5151
return telemetry.ExpressionsFound > 0;
5252
}
5353

54-
private static void ReportInvalidExpressions(MongoAnalyzerContext context, ExpressionsAnalysis linqExpressionAnalysis)
54+
private static void ReportInvalidExpressions(MongoAnalysisContext context, ExpressionsAnalysis linqExpressionAnalysis)
5555
{
5656
var semanticContext = context.SemanticModelAnalysisContext;
5757

@@ -74,7 +74,7 @@ private static void ReportInvalidExpressions(MongoAnalyzerContext context, Expre
7474
}
7575
}
7676

77-
private static AnalysisStats ReportMqlOrInvalidExpressions(MongoAnalyzerContext context, ExpressionsAnalysis linqExpressionAnalysis)
77+
private static AnalysisStats ReportMqlOrInvalidExpressions(MongoAnalysisContext context, ExpressionsAnalysis linqExpressionAnalysis)
7878
{
7979
var semanticContext = context.SemanticModelAnalysisContext;
8080

src/MongoDB.Analyzer/Core/Linq/LinqExpressionProcessor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public RewriteResult(SyntaxNode NodeToReplace, SyntaxNode NewNode) :
4545
public static RewriteResult Invalid = new(RewriteAction.Invalid, null, null);
4646
}
4747

48-
public static ExpressionsAnalysis ProcessSemanticModel(MongoAnalyzerContext context)
48+
public static ExpressionsAnalysis ProcessSemanticModel(MongoAnalysisContext context)
4949
{
5050
var semanticModel = context.SemanticModelAnalysisContext.SemanticModel;
5151
var syntaxTree = semanticModel.SyntaxTree;
@@ -55,7 +55,7 @@ public static ExpressionsAnalysis ProcessSemanticModel(MongoAnalyzerContext cont
5555
var analysisContexts = new List<ExpressionAnalysisContext>();
5656
var invalidExpressionNodes = new List<InvalidExpressionAnalysisNode>();
5757

58-
var typesProcessor = new TypesProcessor();
58+
var typesProcessor = context.TypesProcessor;
5959

6060
foreach (var node in root.DescendantNodesWithSkipList(processedSyntaxNodes).OfType<ExpressionSyntax>())
6161
{

src/MongoDB.Analyzer/Core/AnalysisContext.cs renamed to src/MongoDB.Analyzer/Core/MongoAnalysisContext.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@
1414

1515
namespace MongoDB.Analyzer.Core;
1616

17-
internal record MongoAnalyzerContext(
17+
internal record MongoAnalysisContext(
1818
SemanticModelAnalysisContext SemanticModelAnalysisContext,
1919
MongoDBAnalyzerSettings Settings,
20+
TypesProcessor TypesProcessor,
2021
Logger Logger,
2122
ITelemetryService Telemetry)
2223
{

src/MongoDB.Analyzer/MongoDBDiagnosticAnalyzer.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ public static void SemanticModelAction(SemanticModelAnalysisContext context)
4141
using var telemetryService = SettingsHelper.CreateTelemetryService(settings, correlationId);
4242
using var logger = SettingsHelper.CreateLogger(settings, correlationId);
4343

44-
var mongoAnalyzerContext = new MongoAnalyzerContext(context, settings, logger, telemetryService);
44+
var typesProcessor = new TypesProcessor();
45+
var mongoAnalyzerContext = new MongoAnalysisContext(context, settings, typesProcessor, logger, telemetryService);
4546
var flushTelemetry = false;
4647

4748
try

0 commit comments

Comments
 (0)