Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 3 additions & 9 deletions CodeLineCounter.Tests/CyclomaticComplexityCalculatorTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,9 @@ public void TestMethod()
}
";
var tree = CSharpSyntaxTree.ParseText(code);
var compilation = CSharpCompilation.Create("Test", new[] { tree });
var model = compilation.GetSemanticModel(tree);

// Act
var complexity = CyclomaticComplexityCalculator.Calculate(tree.GetRoot(), model);
var complexity = CyclomaticComplexityCalculator.Calculate(tree.GetRoot());

// Assert
Assert.Equal(3, complexity); // 1 (default) + 1 (if) + 1 (for)
Expand Down Expand Up @@ -53,11 +51,9 @@ public void MyMethod()
");
var root = syntaxTree.GetRoot();
var methodDeclaration = root.DescendantNodes().OfType<MethodDeclarationSyntax>().First();
var compilation = CSharpCompilation.Create("TestCompilation", new[] { syntaxTree });
var semanticModel = compilation.GetSemanticModel(syntaxTree);

// Act
var complexity = CyclomaticComplexityCalculator.Calculate(methodDeclaration, semanticModel);
var complexity = CyclomaticComplexityCalculator.Calculate(methodDeclaration);

// Assert
Assert.Equal(3, complexity);
Expand Down Expand Up @@ -94,11 +90,9 @@ static void Main(string[] args)
");
var root = syntaxTree.GetRoot();
var methodDeclaration = root.DescendantNodes().OfType<MethodDeclarationSyntax>().First();
var compilation = CSharpCompilation.Create("TestCompilation", new[] { syntaxTree });
var semanticModel = compilation.GetSemanticModel(syntaxTree);

// Act
var complexity = CyclomaticComplexityCalculator.Calculate(methodDeclaration, semanticModel);
var complexity = CyclomaticComplexityCalculator.Calculate(methodDeclaration);

// Assert
Assert.Equal(6, complexity);
Expand Down
4 changes: 1 addition & 3 deletions CodeLineCounter/Services/CodeAnalyzer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,8 @@ public static void AnalyzeSourceCode(Dictionary<string, int> projectNamespaceMet
string sourceCode = string.Join(Environment.NewLine, lines);
var tree = CSharpSyntaxTree.ParseText(sourceCode);

var compilation = CSharpCompilation.Create("CodeAnalysis", new[] { tree });
var model = compilation.GetSemanticModel(tree);

fileCyclomaticComplexity = CyclomaticComplexityCalculator.Calculate(tree.GetRoot(), model);
fileCyclomaticComplexity = CyclomaticComplexityCalculator.Calculate(tree.GetRoot());

foreach (var line in lines)
{
Expand Down
7 changes: 3 additions & 4 deletions CodeLineCounter/Services/CyclomaticComplexityCalculator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,15 @@ namespace CodeLineCounter.Services
{
public class CyclomaticComplexityCalculator
{
public static int Calculate(SyntaxNode node, SemanticModel model)
public static int Calculate(SyntaxNode node)
{
var walker = new ComplexityWalker(model);
var walker = new ComplexityWalker();
walker.Visit(node);
return walker.Complexity;
}

private class ComplexityWalker(SemanticModel semanticModel) : CSharpSyntaxWalker
private sealed class ComplexityWalker : CSharpSyntaxWalker
{
private readonly SemanticModel _semanticModel = semanticModel;
public int Complexity { get; private set; } = 1;

public override void VisitMethodDeclaration(MethodDeclarationSyntax node)
Expand Down
1 change: 0 additions & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ currently being supported with security updates.
| ------- | ------------------ |
| 1.0.x | :white_check_mark: |


## Reporting a Vulnerability

Use this section to tell people how to report a vulnerability.
Expand Down