@@ -19,7 +19,9 @@ protected ExpressionVisitor()
1919 protected virtual Expression Visit ( Expression exp )
2020 {
2121 if ( exp == null )
22+ {
2223 return exp ;
24+ }
2325
2426 switch ( exp . NodeType )
2527 {
@@ -103,7 +105,7 @@ protected virtual MemberBinding VisitBinding(MemberBinding binding)
103105
104106 protected virtual ElementInit VisitElementInitializer ( ElementInit initializer )
105107 {
106- ReadOnlyCollection < Expression > arguments = this . VisitExpressionList ( initializer . Arguments ) ;
108+ ReadOnlyCollection < Expression > arguments = VisitExpressionList ( initializer . Arguments ) ;
107109 if ( arguments != initializer . Arguments )
108110 {
109111 return Expression . ElementInit ( initializer . AddMethod , arguments ) ;
@@ -127,13 +129,15 @@ protected virtual Expression VisitBinary(BinaryExpression b)
127129 {
128130 Expression left = Visit ( b . Left ) ;
129131 Expression right = Visit ( b . Right ) ;
130- Expression conversion = Visit ( b . Conversion ) ;
132+ Expression conversion = Visit ( b . Conversion ! ) ;
131133 if ( left != b . Left || right != b . Right || conversion != b . Conversion )
132134 {
133135 if ( b . NodeType == ExpressionType . Coalesce && b . Conversion != null )
136+ {
134137 return Expression . Coalesce ( left , right , conversion as LambdaExpression ) ;
135- else
136- return Expression . MakeBinary ( b . NodeType , left , right , b . IsLiftedToNull , b . Method ) ;
138+ }
139+
140+ return Expression . MakeBinary ( b . NodeType , left , right , b . IsLiftedToNull , b . Method ) ;
137141 }
138142
139143 return b ;
@@ -186,8 +190,8 @@ protected virtual Expression VisitMemberAccess(MemberExpression m)
186190
187191 protected virtual Expression VisitMethodCall ( MethodCallExpression m )
188192 {
189- Expression obj = Visit ( m . Object ) ;
190- IEnumerable < Expression > args = this . VisitExpressionList ( m . Arguments ) ;
193+ Expression obj = Visit ( m . Object ! ) ;
194+ IEnumerable < Expression > args = VisitExpressionList ( m . Arguments ) ;
191195 if ( obj != m . Object || args != m . Arguments )
192196 {
193197 return Expression . Call ( obj , m . Method , args ) ;
@@ -198,10 +202,10 @@ protected virtual Expression VisitMethodCall(MethodCallExpression m)
198202
199203 protected virtual ReadOnlyCollection < Expression > VisitExpressionList ( ReadOnlyCollection < Expression > original )
200204 {
201- List < Expression > list = null ;
205+ List < Expression > ? list = null ;
202206 for ( int i = 0 , n = original . Count ; i < n ; i ++ )
203207 {
204- Expression p = this . Visit ( original [ i ] ) ;
208+ Expression p = Visit ( original [ i ] ) ;
205209 if ( list != null )
206210 {
207211 list . Add ( p ) ;
@@ -239,7 +243,7 @@ protected virtual MemberAssignment VisitMemberAssignment(MemberAssignment assign
239243
240244 protected virtual MemberMemberBinding VisitMemberMemberBinding ( MemberMemberBinding binding )
241245 {
242- IEnumerable < MemberBinding > bindings = this . VisitBindingList ( binding . Bindings ) ;
246+ IEnumerable < MemberBinding > bindings = VisitBindingList ( binding . Bindings ) ;
243247 if ( bindings != binding . Bindings )
244248 {
245249 return Expression . MemberBind ( binding . Member , bindings ) ;
@@ -250,7 +254,7 @@ protected virtual MemberMemberBinding VisitMemberMemberBinding(MemberMemberBindi
250254
251255 protected virtual MemberListBinding VisitMemberListBinding ( MemberListBinding binding )
252256 {
253- IEnumerable < ElementInit > initializers = this . VisitElementInitializerList ( binding . Initializers ) ;
257+ IEnumerable < ElementInit > initializers = VisitElementInitializerList ( binding . Initializers ) ;
254258 if ( initializers != binding . Initializers )
255259 {
256260 return Expression . ListBind ( binding . Member , initializers ) ;
@@ -261,10 +265,10 @@ protected virtual MemberListBinding VisitMemberListBinding(MemberListBinding bin
261265
262266 protected virtual IEnumerable < MemberBinding > VisitBindingList ( ReadOnlyCollection < MemberBinding > original )
263267 {
264- List < MemberBinding > list = null ;
268+ List < MemberBinding > ? list = null ;
265269 for ( int i = 0 , n = original . Count ; i < n ; i ++ )
266270 {
267- MemberBinding b = this . VisitBinding ( original [ i ] ) ;
271+ MemberBinding b = VisitBinding ( original [ i ] ) ;
268272 if ( list != null )
269273 {
270274 list . Add ( b ) ;
@@ -288,10 +292,10 @@ protected virtual IEnumerable<MemberBinding> VisitBindingList(ReadOnlyCollection
288292
289293 protected virtual IEnumerable < ElementInit > VisitElementInitializerList ( ReadOnlyCollection < ElementInit > original )
290294 {
291- List < ElementInit > list = null ;
295+ List < ElementInit > ? list = null ;
292296 for ( int i = 0 , n = original . Count ; i < n ; i ++ )
293297 {
294- ElementInit init = this . VisitElementInitializer ( original [ i ] ) ;
298+ ElementInit init = VisitElementInitializer ( original [ i ] ) ;
295299 if ( list != null )
296300 {
297301 list . Add ( init ) ;
@@ -326,7 +330,7 @@ protected virtual Expression VisitLambda(LambdaExpression lambda)
326330
327331 protected virtual NewExpression VisitNew ( NewExpression nex )
328332 {
329- IEnumerable < Expression > args = this . VisitExpressionList ( nex . Arguments ) ;
333+ IEnumerable < Expression > args = VisitExpressionList ( nex . Arguments ) ;
330334 if ( args != nex . Arguments )
331335 {
332336 if ( nex . Members != null )
@@ -341,7 +345,7 @@ protected virtual NewExpression VisitNew(NewExpression nex)
341345 protected virtual Expression VisitMemberInit ( MemberInitExpression init )
342346 {
343347 NewExpression n = VisitNew ( init . NewExpression ) ;
344- IEnumerable < MemberBinding > bindings = this . VisitBindingList ( init . Bindings ) ;
348+ IEnumerable < MemberBinding > bindings = VisitBindingList ( init . Bindings ) ;
345349 if ( n != init . NewExpression || bindings != init . Bindings )
346350 {
347351 return Expression . MemberInit ( n , bindings ) ;
@@ -353,7 +357,7 @@ protected virtual Expression VisitMemberInit(MemberInitExpression init)
353357 protected virtual Expression VisitListInit ( ListInitExpression init )
354358 {
355359 NewExpression n = VisitNew ( init . NewExpression ) ;
356- IEnumerable < ElementInit > initializers = this . VisitElementInitializerList ( init . Initializers ) ;
360+ IEnumerable < ElementInit > initializers = VisitElementInitializerList ( init . Initializers ) ;
357361 if ( n != init . NewExpression || initializers != init . Initializers )
358362 {
359363 return Expression . ListInit ( n , initializers ) ;
@@ -364,25 +368,23 @@ protected virtual Expression VisitListInit(ListInitExpression init)
364368
365369 protected virtual Expression VisitNewArray ( NewArrayExpression na )
366370 {
367- IEnumerable < Expression > exprs = this . VisitExpressionList ( na . Expressions ) ;
371+ IEnumerable < Expression > exprs = VisitExpressionList ( na . Expressions ) ;
368372 if ( exprs != na . Expressions )
369373 {
370374 if ( na . NodeType == ExpressionType . NewArrayInit )
371375 {
372- return Expression . NewArrayInit ( na . Type . GetElementType ( ) , exprs ) ;
373- }
374- else
375- {
376- return Expression . NewArrayBounds ( na . Type . GetElementType ( ) , exprs ) ;
376+ return Expression . NewArrayInit ( na . Type . GetElementType ( ) ! , exprs ) ;
377377 }
378+
379+ return Expression . NewArrayBounds ( na . Type . GetElementType ( ) ! , exprs ) ;
378380 }
379381
380382 return na ;
381383 }
382384
383385 protected virtual Expression VisitInvocation ( InvocationExpression iv )
384386 {
385- IEnumerable < Expression > args = this . VisitExpressionList ( iv . Arguments ) ;
387+ IEnumerable < Expression > args = VisitExpressionList ( iv . Arguments ) ;
386388 Expression expr = Visit ( iv . Expression ) ;
387389 if ( args != iv . Arguments || expr != iv . Expression )
388390 {
0 commit comments