@@ -45,7 +45,8 @@ protected override async Task RegisterCodeFixesAsync(DocumentEditorCodeFixContex
4545 {
4646 foreach ( var diagnostic in context . Diagnostics )
4747 {
48- if ( syntaxRoot . TryFindNodeOrAncestor ( diagnostic , out ExpressionStatementSyntax ? statement ) )
48+ if ( syntaxRoot . TryFindNodeOrAncestor ( diagnostic , out ExpressionStatementSyntax ? statement ) &&
49+ statement is { Expression : { } expression } )
4950 {
5051 if ( TryGetField ( statement , semanticModel , context . CancellationToken , out var field ) )
5152 {
@@ -75,7 +76,7 @@ IEnumerable<ExpressionSyntax> Expressions(InitializerExpressionSyntax old)
7576 {
7677 if ( old . Expressions . Count == 0 )
7778 {
78- yield return statement . Expression . WithAdditionalAnnotations ( Formatter . Annotation ) ;
79+ yield return expression . WithAdditionalAnnotations ( Formatter . Annotation ) ;
7980 }
8081 else
8182 {
@@ -85,7 +86,7 @@ IEnumerable<ExpressionSyntax> Expressions(InitializerExpressionSyntax old)
8586 }
8687
8788 yield return old . Expressions . Last ( ) . WithoutTrailingTrivia ( ) ;
88- yield return statement . Expression . WithAdditionalAnnotations ( Formatter . Annotation ) ;
89+ yield return expression . WithAdditionalAnnotations ( Formatter . Annotation ) ;
8990 }
9091 }
9192
@@ -113,7 +114,7 @@ IEnumerable<SyntaxToken> Separators(InitializerExpressionSyntax old)
113114 }
114115 }
115116
116- return separators . Append ( SyntaxFactory . Token ( default , SyntaxKind . CommaToken , statement . GetTrailingTrivia ( ) ) ) ;
117+ return separators . Append ( SyntaxFactory . Token ( default , SyntaxKind . CommaToken , statement ! . GetTrailingTrivia ( ) ) ) ;
117118 }
118119
119120 break ;
@@ -122,7 +123,7 @@ when argumentList.Arguments.TryFirst(x => !(x.Expression is LiteralExpressionSyn
122123 editor . RemoveNode ( statement ) ;
123124 editor . ReplaceNode (
124125 argumentList ,
125- x => x . AddArguments ( SyntaxFactory . Argument ( statement . Expression ) ) ) ;
126+ x => x . AddArguments ( SyntaxFactory . Argument ( expression ) ) ) ;
126127 break ;
127128 default :
128129 editor . RemoveNode ( statement ) ;
@@ -133,26 +134,26 @@ when argumentList.Arguments.TryFirst(x => !(x.Expression is LiteralExpressionSyn
133134
134135 editor . ReplaceNode (
135136 objectCreation ,
136- x => x . WithInitializer ( CreateInitializer ( statement ) ) ) ;
137+ x => x . WithInitializer ( CreateInitializer ( statement ! ) ) ) ;
137138 break ;
138139 }
139140
140141 return ;
141142 }
142143
143144 _ = editor . ReplaceNode (
144- statement . Expression ,
145+ expression ,
145146 x => SyntaxFactory . InvocationExpression (
146147 SyntaxFactory . MemberAccessExpression (
147148 SyntaxKind . SimpleMemberAccessExpression ,
148- IDisposableFactory . MemberAccess ( field . Identifier , semanticModel , cancellationToken ) ,
149+ IDisposableFactory . MemberAccess ( field ! . Identifier , semanticModel , cancellationToken ) ,
149150 SyntaxFactory . IdentifierName ( "Add" ) ) ,
150- SyntaxFactory . ArgumentList ( SyntaxFactory . SingletonSeparatedList ( SyntaxFactory . Argument ( statement . Expression ) ) ) )
151+ SyntaxFactory . ArgumentList ( SyntaxFactory . SingletonSeparatedList ( SyntaxFactory . Argument ( x ) ) ) )
151152 . WithTriviaFrom ( x ) ) ;
152153
153154 StatementSyntax ? PreviousStatement ( )
154155 {
155- return statement . Parent is BlockSyntax block &&
156+ return statement is { Parent : BlockSyntax block } &&
156157 block . Statements . TryElementAt ( block . Statements . IndexOf ( statement ) - 1 , out var result )
157158 ? result
158159 : null ;
@@ -163,9 +164,9 @@ bool IsField(ExpressionSyntax e)
163164 switch ( e )
164165 {
165166 case IdentifierNameSyntax identifierName
166- when identifierName . Identifier . ValueText == field . Identifier . ValueText :
167+ when identifierName . Identifier . ValueText == field ! . Identifier . ValueText :
167168 case MemberAccessExpressionSyntax { Expression : ThisExpressionSyntax _, Name : { } name }
168- when name . Identifier . ValueText == field . Identifier . ValueText :
169+ when name . Identifier . ValueText == field ! . Identifier . ValueText :
169170 return true ;
170171 default :
171172 return false ;
@@ -192,7 +193,7 @@ async Task CreateAndInitializeAsync(DocumentEditor editor, CancellationToken can
192193 cancellationToken ) . ConfigureAwait ( false ) ;
193194
194195 _ = editor . ReplaceNode (
195- statement ,
196+ statement ! ,
196197 x => x . WithExpression (
197198 SyntaxFactory . AssignmentExpression (
198199 SyntaxKind . SimpleAssignmentExpression ,
0 commit comments