Skip to content

Commit 7cf1afd

Browse files
authored
Merge pull request #2 from delegateas/copilot/fix-1
Remove for, foreach, do, while from CT0001 analysis
2 parents 2712309 + 6f7e434 commit 7cf1afd

3 files changed

Lines changed: 1 addition & 71 deletions

File tree

README.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ A Roslyn analyzer for .NET Core projects that enforces specific control flow bra
44

55
## Rule CT0001: Control Flow Braces Rule
66

7-
This analyzer enforces that control flow statements without braces can only contain:
7+
This analyzer enforces that `if` and `else` control flow statements without braces can only contain:
88
- `return` statements
99
- `throw` statements
1010
- `continue` statements
@@ -36,10 +36,6 @@ if (done)
3636
// This will trigger CT0001
3737
if (condition)
3838
DoSomething();
39-
40-
// This will trigger CT0001
41-
for (int i = 0; i < 10; i++)
42-
x = i;
4339
```
4440

4541
## Usage

src/DataverseAnalyzer/BracesForControlFlowAnalyzer.cs

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ public override void Initialize(AnalysisContext context)
2727
context.EnableConcurrentExecution();
2828
context.RegisterSyntaxNodeAction(AnalyzeIfStatement, SyntaxKind.IfStatement);
2929
context.RegisterSyntaxNodeAction(AnalyzeElseClause, SyntaxKind.ElseClause);
30-
context.RegisterSyntaxNodeAction(AnalyzeForStatement, SyntaxKind.ForStatement);
31-
context.RegisterSyntaxNodeAction(AnalyzeForEachStatement, SyntaxKind.ForEachStatement);
32-
context.RegisterSyntaxNodeAction(AnalyzeWhileStatement, SyntaxKind.WhileStatement);
33-
context.RegisterSyntaxNodeAction(AnalyzeDoStatement, SyntaxKind.DoStatement);
3430
}
3531

3632
private static void AnalyzeIfStatement(SyntaxNodeAnalysisContext context)
@@ -48,30 +44,6 @@ private static void AnalyzeElseClause(SyntaxNodeAnalysisContext context)
4844
}
4945
}
5046

51-
private static void AnalyzeForStatement(SyntaxNodeAnalysisContext context)
52-
{
53-
var forStatement = (ForStatementSyntax)context.Node;
54-
AnalyzeEmbeddedStatement(context, forStatement.Statement);
55-
}
56-
57-
private static void AnalyzeForEachStatement(SyntaxNodeAnalysisContext context)
58-
{
59-
var forEachStatement = (ForEachStatementSyntax)context.Node;
60-
AnalyzeEmbeddedStatement(context, forEachStatement.Statement);
61-
}
62-
63-
private static void AnalyzeWhileStatement(SyntaxNodeAnalysisContext context)
64-
{
65-
var whileStatement = (WhileStatementSyntax)context.Node;
66-
AnalyzeEmbeddedStatement(context, whileStatement.Statement);
67-
}
68-
69-
private static void AnalyzeDoStatement(SyntaxNodeAnalysisContext context)
70-
{
71-
var doStatement = (DoStatementSyntax)context.Node;
72-
AnalyzeEmbeddedStatement(context, doStatement.Statement);
73-
}
74-
7547
private static void AnalyzeEmbeddedStatement(SyntaxNodeAnalysisContext context, StatementSyntax statement)
7648
{
7749
if (statement is BlockSyntax)

tests/DataverseAnalyzer.Tests/BracesForControlFlowAnalyzerTests.cs

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -125,44 +125,6 @@ private void DoSomething() { }
125125
Assert.Equal("CT0001", diagnostics[0].Id);
126126
}
127127

128-
[Fact]
129-
public async Task ForStatementWithAssignmentShouldTrigger()
130-
{
131-
var source = """
132-
class TestClass
133-
{
134-
public void TestMethod()
135-
{
136-
int x = 0;
137-
for (int i = 0; i < 10; i++)
138-
x = i;
139-
}
140-
}
141-
""";
142-
143-
var diagnostics = await GetDiagnosticsAsync(source);
144-
Assert.Single(diagnostics);
145-
Assert.Equal("CT0001", diagnostics[0].Id);
146-
}
147-
148-
[Fact]
149-
public async Task WhileStatementWithReturnShouldNotTrigger()
150-
{
151-
var source = """
152-
class TestClass
153-
{
154-
public void TestMethod()
155-
{
156-
while (true)
157-
return;
158-
}
159-
}
160-
""";
161-
162-
var diagnostics = await GetDiagnosticsAsync(source);
163-
Assert.Empty(diagnostics);
164-
}
165-
166128
[Fact]
167129
public async Task IfStatementWithBracesShouldNotTrigger()
168130
{

0 commit comments

Comments
 (0)