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
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,51 @@

namespace StyleCop.Analyzers.Test.CSharp9.ReadabilityRules
{
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.Testing;
using StyleCop.Analyzers.Test.CSharp8.ReadabilityRules;
using Xunit;
using static StyleCop.Analyzers.Test.Verifiers.StyleCopCodeFixVerifier<
StyleCop.Analyzers.ReadabilityRules.SA1116SplitParametersMustStartOnLineAfterDeclaration,
StyleCop.Analyzers.ReadabilityRules.SA1116CodeFixProvider>;

public class SA1116CSharp9UnitTests : SA1116CSharp8UnitTests
{
[Fact]
public async Task TestTargetTypedNewExpressionnAsync()
{
var testCode = @"
class Foo
{
public Foo(int a, int b)
{
}

public void Method()
{
Foo x = new(1,
2);
}
}";

var fixedCode = @"
class Foo
{
public Foo(int a, int b)
{
}

public void Method()
{
Foo x = new(
1,
2);
}
}";

DiagnosticResult expected = Diagnostic().WithLocation(10, 21);
await VerifyCSharpFixAsync(testCode, expected, fixedCode, CancellationToken.None).ConfigureAwait(false);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,56 @@

namespace StyleCop.Analyzers.Test.CSharp9.ReadabilityRules
{
using System.Threading;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.Testing;
using StyleCop.Analyzers.Test.CSharp8.ReadabilityRules;
using Xunit;
using static StyleCop.Analyzers.Test.Verifiers.StyleCopDiagnosticVerifier<StyleCop.Analyzers.ReadabilityRules.SA1117ParametersMustBeOnSameLineOrSeparateLines>;

public class SA1117CSharp9UnitTests : SA1117CSharp8UnitTests
{
[Fact]
public async Task TestValidTargetTypedNewExpressionAsync()
{
var testCode = @"
class Foo
{
public Foo(int a, int b, int c)
{
}

public void Method()
{
Foo x = new(
1,
2,
3);
}
}";

await VerifyCSharpDiagnosticAsync(testCode, DiagnosticResult.EmptyDiagnosticResults, CancellationToken.None).ConfigureAwait(false);
}

[Fact]
public async Task TestInvalidTargetTypedNewExpressionAsync()
{
var testCode = @"
class Foo
{
public Foo(int a, int b, int c)
{
}

public void Method()
{
Foo x = new(1,
2, 3);
}
}";

DiagnosticResult expected = Diagnostic().WithLocation(11, 16);
await VerifyCSharpDiagnosticAsync(testCode, expected, CancellationToken.None).ConfigureAwait(false);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ internal class SA1116SplitParametersMustStartOnLineAfterDeclaration : Diagnostic
private static readonly Action<SyntaxNodeAnalysisContext> IndexerDeclarationAction = HandleIndexerDeclaration;
private static readonly Action<SyntaxNodeAnalysisContext> InvocationExpressionAction = HandleInvocationExpression;
private static readonly Action<SyntaxNodeAnalysisContext> ObjectCreationExpressionAction = HandleObjectCreationExpression;
private static readonly Action<SyntaxNodeAnalysisContext> ImplicitObjectCreationExpressionAction = HandleImplicitObjectCreationExpression;
private static readonly Action<SyntaxNodeAnalysisContext> ElementAccessExpressionAction = HandleElementAccessExpression;
private static readonly Action<SyntaxNodeAnalysisContext> ElementBindingExpressionAction = HandleElementBindingExpression;
private static readonly Action<SyntaxNodeAnalysisContext> ImplicitElementAccessAction = HandleImplicitElementAccess;
Expand All @@ -86,6 +87,7 @@ public override void Initialize(AnalysisContext context)
context.RegisterSyntaxNodeAction(IndexerDeclarationAction, SyntaxKind.IndexerDeclaration);
context.RegisterSyntaxNodeAction(InvocationExpressionAction, SyntaxKind.InvocationExpression);
context.RegisterSyntaxNodeAction(ObjectCreationExpressionAction, SyntaxKind.ObjectCreationExpression);
context.RegisterSyntaxNodeAction(ImplicitObjectCreationExpressionAction, SyntaxKindEx.ImplicitObjectCreationExpression);
context.RegisterSyntaxNodeAction(ElementAccessExpressionAction, SyntaxKind.ElementAccessExpression);
context.RegisterSyntaxNodeAction(ElementBindingExpressionAction, SyntaxKind.ElementBindingExpression);
context.RegisterSyntaxNodeAction(ImplicitElementAccessAction, SyntaxKind.ImplicitElementAccess);
Expand Down Expand Up @@ -119,6 +121,12 @@ private static void HandleObjectCreationExpression(SyntaxNodeAnalysisContext con
HandleArgumentListSyntax(context, objectCreation.ArgumentList);
}

private static void HandleImplicitObjectCreationExpression(SyntaxNodeAnalysisContext context)
{
var implicitObjectCreation = (ImplicitObjectCreationExpressionSyntaxWrapper)context.Node;
HandleArgumentListSyntax(context, implicitObjectCreation.ArgumentList);
}

private static void HandleIndexerDeclaration(SyntaxNodeAnalysisContext context)
{
var indexerDeclaration = (IndexerDeclarationSyntax)context.Node;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ internal class SA1117ParametersMustBeOnSameLineOrSeparateLines : DiagnosticAnaly
private static readonly Action<SyntaxNodeAnalysisContext> IndexerDeclarationAction = HandleIndexerDeclaration;
private static readonly Action<SyntaxNodeAnalysisContext> InvocationExpressionAction = HandleInvocationExpression;
private static readonly Action<SyntaxNodeAnalysisContext> ObjectCreationExpressionAction = HandleObjectCreationExpression;
private static readonly Action<SyntaxNodeAnalysisContext> ImplicitObjectCreationExpressionAction = HandleImplicitObjectCreationExpression;
private static readonly Action<SyntaxNodeAnalysisContext> ElementAccessExpressionAction = HandleElementAccessExpression;
private static readonly Action<SyntaxNodeAnalysisContext> ElementBindingExpressionAction = HandleElementBindingExpression;
private static readonly Action<SyntaxNodeAnalysisContext> ArrayCreationExpressionAction = HandleArrayCreationExpression;
Expand All @@ -96,6 +97,7 @@ public override void Initialize(AnalysisContext context)
context.RegisterSyntaxNodeAction(IndexerDeclarationAction, SyntaxKind.IndexerDeclaration);
context.RegisterSyntaxNodeAction(InvocationExpressionAction, SyntaxKind.InvocationExpression);
context.RegisterSyntaxNodeAction(ObjectCreationExpressionAction, SyntaxKind.ObjectCreationExpression);
context.RegisterSyntaxNodeAction(ImplicitObjectCreationExpressionAction, SyntaxKindEx.ImplicitObjectCreationExpression);
context.RegisterSyntaxNodeAction(ElementAccessExpressionAction, SyntaxKind.ElementAccessExpression);
context.RegisterSyntaxNodeAction(ElementBindingExpressionAction, SyntaxKind.ElementBindingExpression);
context.RegisterSyntaxNodeAction(ArrayCreationExpressionAction, SyntaxKind.ArrayCreationExpression);
Expand Down Expand Up @@ -128,6 +130,12 @@ private static void HandleObjectCreationExpression(SyntaxNodeAnalysisContext con
HandleArgumentListSyntax(context, objectCreation.ArgumentList);
}

private static void HandleImplicitObjectCreationExpression(SyntaxNodeAnalysisContext context)
{
var implicitObjectCreation = (ImplicitObjectCreationExpressionSyntaxWrapper)context.Node;
HandleArgumentListSyntax(context, implicitObjectCreation.ArgumentList);
}

private static void HandleIndexerDeclaration(SyntaxNodeAnalysisContext context)
{
var indexerDeclaration = (IndexerDeclarationSyntax)context.Node;
Expand Down