Skip to content

Commit

Permalink
Support records without braces
Browse files Browse the repository at this point in the history
  • Loading branch information
sharwell committed Dec 15, 2020
1 parent 2bf353c commit 9c5c071
Show file tree
Hide file tree
Showing 8 changed files with 110 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,28 @@

namespace StyleCop.Analyzers.Test.CSharp9.LayoutRules
{
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.Testing;
using StyleCop.Analyzers.Test.CSharp8.LayoutRules;
using Xunit;
using static StyleCop.Analyzers.Test.Verifiers.StyleCopCodeFixVerifier<
StyleCop.Analyzers.LayoutRules.SA1500BracesForMultiLineStatementsMustNotShareLine,
StyleCop.Analyzers.LayoutRules.SA1500CodeFixProvider>;

public class SA1500CSharp9UnitTests : SA1500CSharp8UnitTests
{
[Fact]
[WorkItem(3272, "https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/3272")]
public async Task TestSingleLineRecordAsync()
{
var testCode = @"namespace TestNamespace
{
public record TestRecord;
}
";

await VerifyCSharpFixAsync(testCode, DiagnosticResult.EmptyDiagnosticResults, testCode, CancellationToken.None).ConfigureAwait(false);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,28 @@

namespace StyleCop.Analyzers.Test.CSharp9.LayoutRules
{
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.Testing;
using StyleCop.Analyzers.Test.CSharp8.LayoutRules;
using Xunit;
using static StyleCop.Analyzers.Test.Verifiers.StyleCopCodeFixVerifier<
StyleCop.Analyzers.LayoutRules.SA1502ElementMustNotBeOnASingleLine,
StyleCop.Analyzers.LayoutRules.SA1502CodeFixProvider>;

public class SA1502CSharp9UnitTests : SA1502CSharp8UnitTests
{
[Fact]
[WorkItem(3272, "https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/3272")]
public async Task TestSingleLineRecordAsync()
{
var testCode = @"namespace TestNamespace
{
public record TestRecord;
}
";

await VerifyCSharpFixAsync(testCode, DiagnosticResult.EmptyDiagnosticResults, testCode, CancellationToken.None).ConfigureAwait(false);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,28 @@

namespace StyleCop.Analyzers.Test.CSharp9.LayoutRules
{
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.Testing;
using StyleCop.Analyzers.Test.CSharp8.LayoutRules;
using Xunit;
using static StyleCop.Analyzers.Test.Verifiers.StyleCopCodeFixVerifier<
StyleCop.Analyzers.LayoutRules.SA1505OpeningBracesMustNotBeFollowedByBlankLine,
StyleCop.Analyzers.LayoutRules.SA1505CodeFixProvider>;

public class SA1505CSharp9UnitTests : SA1505CSharp8UnitTests
{
[Fact]
[WorkItem(3272, "https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/3272")]
public async Task TestSingleLineRecordAsync()
{
var testCode = @"namespace TestNamespace
{
public record TestRecord;
}
";

await VerifyCSharpFixAsync(testCode, DiagnosticResult.EmptyDiagnosticResults, testCode, CancellationToken.None).ConfigureAwait(false);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,28 @@

namespace StyleCop.Analyzers.Test.CSharp9.LayoutRules
{
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.Testing;
using StyleCop.Analyzers.Test.CSharp8.LayoutRules;
using Xunit;
using static StyleCop.Analyzers.Test.Verifiers.StyleCopCodeFixVerifier<
StyleCop.Analyzers.LayoutRules.SA1508ClosingBracesMustNotBePrecededByBlankLine,
StyleCop.Analyzers.LayoutRules.SA1508CodeFixProvider>;

public class SA1508CSharp9UnitTests : SA1508CSharp8UnitTests
{
[Fact]
[WorkItem(3272, "https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/3272")]
public async Task TestSingleLineRecordAsync()
{
var testCode = @"namespace TestNamespace
{
public record TestRecord;
}
";

await VerifyCSharpFixAsync(testCode, DiagnosticResult.EmptyDiagnosticResults, testCode, CancellationToken.None).ConfigureAwait(false);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,28 @@

namespace StyleCop.Analyzers.Test.CSharp9.LayoutRules
{
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.Testing;
using StyleCop.Analyzers.Test.CSharp8.LayoutRules;
using Xunit;
using static StyleCop.Analyzers.Test.Verifiers.StyleCopCodeFixVerifier<
StyleCop.Analyzers.LayoutRules.SA1509OpeningBracesMustNotBePrecededByBlankLine,
StyleCop.Analyzers.LayoutRules.SA1509CodeFixProvider>;

public class SA1509CSharp9UnitTests : SA1509CSharp8UnitTests
{
[Fact]
[WorkItem(3272, "https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/3272")]
public async Task TestSingleLineRecordAsync()
{
var testCode = @"namespace TestNamespace
{
public record TestRecord;
}
";

await VerifyCSharpFixAsync(testCode, DiagnosticResult.EmptyDiagnosticResults, testCode, CancellationToken.None).ConfigureAwait(false);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,11 @@ private static void HandleAnonymousObjectCreationExpression(SyntaxNodeAnalysisCo

private static void CheckBraces(SyntaxNodeAnalysisContext context, SyntaxToken openBraceToken, SyntaxToken closeBraceToken)
{
if (openBraceToken.IsKind(SyntaxKind.None) || closeBraceToken.IsKind(SyntaxKind.None))
{
return;
}

bool checkCloseBrace = true;
int openBraceTokenLine = openBraceToken.GetLine();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,11 @@ private static void HandleNamespaceDeclaration(SyntaxNodeAnalysisContext context

private static void CheckViolation(SyntaxNodeAnalysisContext context, SyntaxToken openBraceToken, SyntaxToken closeBraceToken)
{
if (openBraceToken.IsKind(SyntaxKind.None) || closeBraceToken.IsKind(SyntaxKind.None))
{
return;
}

var openingBraceLineSpan = openBraceToken.GetLineSpan();
var closingBraceLineSpan = closeBraceToken.GetLineSpan();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,11 @@ private static void HandleAccessorList(SyntaxNodeAnalysisContext context)

private static void AnalyzeCloseBrace(SyntaxNodeAnalysisContext context, SyntaxToken closeBraceToken)
{
if (closeBraceToken.IsKind(SyntaxKind.None))
{
return;
}

var previousToken = closeBraceToken.GetPreviousToken();
if ((closeBraceToken.GetLineSpan().StartLinePosition.Line - previousToken.GetLineSpan().EndLinePosition.Line) < 2)
{
Expand Down

0 comments on commit 9c5c071

Please sign in to comment.