Skip to content

Commit

Permalink
Fix analyzer RCS1201 (#1470)
Browse files Browse the repository at this point in the history
  • Loading branch information
josefpihrt committed May 15, 2024
1 parent 18b8c18 commit f92b3fc
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 1 deletion.
1 change: 1 addition & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed

- Fix analyzer [RCS1108](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1108) ([PR](https://github.com/dotnet/roslynator/pull/1469))
- Fix analyzer [RCS1201](https://josefpihrt.github.io/docs/roslynator/analyzers/RCS1201) ([PR](https://github.com/dotnet/roslynator/pull/1470))

## [4.12.3] - 2024-05-10

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@ public bool Analyze(
if (statement.SpanOrTrailingTriviaContainsDirectives())
return false;

if (statement.GetTrailingTrivia().Any(f => f.IsKind(SyntaxKind.SingleLineCommentTrivia, SyntaxKind.MultiLineCommentTrivia)))
return false;

StatementListInfo statementsInfo = SyntaxInfo.StatementListInfo(statement);

if (!statementsInfo.Success)
Expand Down Expand Up @@ -99,7 +102,12 @@ public bool Analyze(
int j = i;
while (j < statements.Count - 1)
{
if (!IsFixableStatement(statements[j + 1], name, returnType, semanticModel, cancellationToken))
StatementSyntax statement2 = statements[j + 1];

if (statement2.GetLeadingTrivia().Any(f => f.IsKind(SyntaxKind.SingleLineCommentTrivia, SyntaxKind.MultiLineCommentTrivia)))
break;

if (!IsFixableStatement(statement2, name, returnType, semanticModel, cancellationToken))
break;

j++;
Expand Down
46 changes: 46 additions & 0 deletions src/Tests/Analyzers.Tests/RCS1201UseMethodChainingTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -198,4 +198,50 @@ public C2 M2()
}
");
}

[Fact, Trait(Traits.Analyzer, DiagnosticIdentifiers.UseMethodChaining)]
public async Task TestNoDiagnostic_CommentsBetween()
{
await VerifyNoDiagnosticAsync("""

using System.Text;

public class C
{
public void M()
{
var sb = new StringBuilder();

// first
sb.Append("first");

// second
sb.Append("second");
}
}

""");
}

[Fact, Trait(Traits.Analyzer, DiagnosticIdentifiers.UseMethodChaining)]
public async Task TestNoDiagnostic_CommentsBetween2()
{
await VerifyNoDiagnosticAsync("""

using System.Text;

public class C
{
public void M()
{
var sb = new StringBuilder();

sb.Append("first"); // first

sb.Append("second");
}
}

""");
}
}

0 comments on commit f92b3fc

Please sign in to comment.