@@ -60,6 +60,7 @@ internal class SA1110OpeningParenthesisMustBeOnDeclarationLine : DiagnosticAnaly
6060 private static readonly Action < SyntaxNodeAnalysisContext > ConstructorDeclarationAction = HandleConstructorDeclaration ;
6161 private static readonly Action < SyntaxNodeAnalysisContext > InvocationExpressionAction = HandleInvocationExpression ;
6262 private static readonly Action < SyntaxNodeAnalysisContext > ObjectCreationExpressionAction = HandleObjectCreationExpression ;
63+ private static readonly Action < SyntaxNodeAnalysisContext > ImplicitObjectCreationExpressionAction = HandleImplicitObjectCreationExpression ;
6364 private static readonly Action < SyntaxNodeAnalysisContext > IndexerDeclarationAction = HandleIndexerDeclaration ;
6465 private static readonly Action < SyntaxNodeAnalysisContext > ElementAccessExpressionAction = HandleElementAccessExpression ;
6566 private static readonly Action < SyntaxNodeAnalysisContext > AttributeAction = HandleAttribute ;
@@ -86,6 +87,7 @@ public override void Initialize(AnalysisContext context)
8687 context . RegisterSyntaxNodeAction ( ConstructorDeclarationAction , SyntaxKind . ConstructorDeclaration ) ;
8788 context . RegisterSyntaxNodeAction ( InvocationExpressionAction , SyntaxKind . InvocationExpression ) ;
8889 context . RegisterSyntaxNodeAction ( ObjectCreationExpressionAction , SyntaxKind . ObjectCreationExpression ) ;
90+ context . RegisterSyntaxNodeAction ( ImplicitObjectCreationExpressionAction , SyntaxKindEx . ImplicitObjectCreationExpression ) ;
8991 context . RegisterSyntaxNodeAction ( IndexerDeclarationAction , SyntaxKind . IndexerDeclaration ) ;
9092 context . RegisterSyntaxNodeAction ( ElementAccessExpressionAction , SyntaxKind . ElementAccessExpression ) ;
9193 context . RegisterSyntaxNodeAction ( AttributeAction , SyntaxKind . Attribute ) ;
@@ -258,6 +260,24 @@ private static void HandleObjectCreationExpression(SyntaxNodeAnalysisContext con
258260 }
259261 }
260262
263+ private static void HandleImplicitObjectCreationExpression ( SyntaxNodeAnalysisContext context )
264+ {
265+ var implicitObjectCreation = ( ImplicitObjectCreationExpressionSyntaxWrapper ) context . Node ;
266+ if ( implicitObjectCreation . NewKeyword . IsMissing )
267+ {
268+ return ;
269+ }
270+
271+ var argumentList = implicitObjectCreation . ArgumentList ;
272+
273+ if ( argumentList != null
274+ && ! argumentList . OpenParenToken . IsMissing )
275+ {
276+ bool preserveLayout = argumentList . Arguments . Any ( ) ;
277+ CheckIfLocationOfPreviousTokenAndOpenTokenAreTheSame ( context , argumentList . OpenParenToken , preserveLayout ) ;
278+ }
279+ }
280+
261281 private static SyntaxToken ? GetIdentifier ( ObjectCreationExpressionSyntax objectCreationExpressionSyntax )
262282 {
263283 switch ( objectCreationExpressionSyntax . Type . Kind ( ) )
0 commit comments