@@ -19,7 +19,9 @@ protected ExpressionVisitor()
19
19
protected virtual Expression Visit ( Expression exp )
20
20
{
21
21
if ( exp == null )
22
+ {
22
23
return exp ;
24
+ }
23
25
24
26
switch ( exp . NodeType )
25
27
{
@@ -103,7 +105,7 @@ protected virtual MemberBinding VisitBinding(MemberBinding binding)
103
105
104
106
protected virtual ElementInit VisitElementInitializer ( ElementInit initializer )
105
107
{
106
- ReadOnlyCollection < Expression > arguments = this . VisitExpressionList ( initializer . Arguments ) ;
108
+ ReadOnlyCollection < Expression > arguments = VisitExpressionList ( initializer . Arguments ) ;
107
109
if ( arguments != initializer . Arguments )
108
110
{
109
111
return Expression . ElementInit ( initializer . AddMethod , arguments ) ;
@@ -127,13 +129,15 @@ protected virtual Expression VisitBinary(BinaryExpression b)
127
129
{
128
130
Expression left = Visit ( b . Left ) ;
129
131
Expression right = Visit ( b . Right ) ;
130
- Expression conversion = Visit ( b . Conversion ) ;
132
+ Expression conversion = Visit ( b . Conversion ! ) ;
131
133
if ( left != b . Left || right != b . Right || conversion != b . Conversion )
132
134
{
133
135
if ( b . NodeType == ExpressionType . Coalesce && b . Conversion != null )
136
+ {
134
137
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 ) ;
137
141
}
138
142
139
143
return b ;
@@ -186,8 +190,8 @@ protected virtual Expression VisitMemberAccess(MemberExpression m)
186
190
187
191
protected virtual Expression VisitMethodCall ( MethodCallExpression m )
188
192
{
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 ) ;
191
195
if ( obj != m . Object || args != m . Arguments )
192
196
{
193
197
return Expression . Call ( obj , m . Method , args ) ;
@@ -198,10 +202,10 @@ protected virtual Expression VisitMethodCall(MethodCallExpression m)
198
202
199
203
protected virtual ReadOnlyCollection < Expression > VisitExpressionList ( ReadOnlyCollection < Expression > original )
200
204
{
201
- List < Expression > list = null ;
205
+ List < Expression > ? list = null ;
202
206
for ( int i = 0 , n = original . Count ; i < n ; i ++ )
203
207
{
204
- Expression p = this . Visit ( original [ i ] ) ;
208
+ Expression p = Visit ( original [ i ] ) ;
205
209
if ( list != null )
206
210
{
207
211
list . Add ( p ) ;
@@ -239,7 +243,7 @@ protected virtual MemberAssignment VisitMemberAssignment(MemberAssignment assign
239
243
240
244
protected virtual MemberMemberBinding VisitMemberMemberBinding ( MemberMemberBinding binding )
241
245
{
242
- IEnumerable < MemberBinding > bindings = this . VisitBindingList ( binding . Bindings ) ;
246
+ IEnumerable < MemberBinding > bindings = VisitBindingList ( binding . Bindings ) ;
243
247
if ( bindings != binding . Bindings )
244
248
{
245
249
return Expression . MemberBind ( binding . Member , bindings ) ;
@@ -250,7 +254,7 @@ protected virtual MemberMemberBinding VisitMemberMemberBinding(MemberMemberBindi
250
254
251
255
protected virtual MemberListBinding VisitMemberListBinding ( MemberListBinding binding )
252
256
{
253
- IEnumerable < ElementInit > initializers = this . VisitElementInitializerList ( binding . Initializers ) ;
257
+ IEnumerable < ElementInit > initializers = VisitElementInitializerList ( binding . Initializers ) ;
254
258
if ( initializers != binding . Initializers )
255
259
{
256
260
return Expression . ListBind ( binding . Member , initializers ) ;
@@ -261,10 +265,10 @@ protected virtual MemberListBinding VisitMemberListBinding(MemberListBinding bin
261
265
262
266
protected virtual IEnumerable < MemberBinding > VisitBindingList ( ReadOnlyCollection < MemberBinding > original )
263
267
{
264
- List < MemberBinding > list = null ;
268
+ List < MemberBinding > ? list = null ;
265
269
for ( int i = 0 , n = original . Count ; i < n ; i ++ )
266
270
{
267
- MemberBinding b = this . VisitBinding ( original [ i ] ) ;
271
+ MemberBinding b = VisitBinding ( original [ i ] ) ;
268
272
if ( list != null )
269
273
{
270
274
list . Add ( b ) ;
@@ -288,10 +292,10 @@ protected virtual IEnumerable<MemberBinding> VisitBindingList(ReadOnlyCollection
288
292
289
293
protected virtual IEnumerable < ElementInit > VisitElementInitializerList ( ReadOnlyCollection < ElementInit > original )
290
294
{
291
- List < ElementInit > list = null ;
295
+ List < ElementInit > ? list = null ;
292
296
for ( int i = 0 , n = original . Count ; i < n ; i ++ )
293
297
{
294
- ElementInit init = this . VisitElementInitializer ( original [ i ] ) ;
298
+ ElementInit init = VisitElementInitializer ( original [ i ] ) ;
295
299
if ( list != null )
296
300
{
297
301
list . Add ( init ) ;
@@ -326,7 +330,7 @@ protected virtual Expression VisitLambda(LambdaExpression lambda)
326
330
327
331
protected virtual NewExpression VisitNew ( NewExpression nex )
328
332
{
329
- IEnumerable < Expression > args = this . VisitExpressionList ( nex . Arguments ) ;
333
+ IEnumerable < Expression > args = VisitExpressionList ( nex . Arguments ) ;
330
334
if ( args != nex . Arguments )
331
335
{
332
336
if ( nex . Members != null )
@@ -341,7 +345,7 @@ protected virtual NewExpression VisitNew(NewExpression nex)
341
345
protected virtual Expression VisitMemberInit ( MemberInitExpression init )
342
346
{
343
347
NewExpression n = VisitNew ( init . NewExpression ) ;
344
- IEnumerable < MemberBinding > bindings = this . VisitBindingList ( init . Bindings ) ;
348
+ IEnumerable < MemberBinding > bindings = VisitBindingList ( init . Bindings ) ;
345
349
if ( n != init . NewExpression || bindings != init . Bindings )
346
350
{
347
351
return Expression . MemberInit ( n , bindings ) ;
@@ -353,7 +357,7 @@ protected virtual Expression VisitMemberInit(MemberInitExpression init)
353
357
protected virtual Expression VisitListInit ( ListInitExpression init )
354
358
{
355
359
NewExpression n = VisitNew ( init . NewExpression ) ;
356
- IEnumerable < ElementInit > initializers = this . VisitElementInitializerList ( init . Initializers ) ;
360
+ IEnumerable < ElementInit > initializers = VisitElementInitializerList ( init . Initializers ) ;
357
361
if ( n != init . NewExpression || initializers != init . Initializers )
358
362
{
359
363
return Expression . ListInit ( n , initializers ) ;
@@ -364,25 +368,23 @@ protected virtual Expression VisitListInit(ListInitExpression init)
364
368
365
369
protected virtual Expression VisitNewArray ( NewArrayExpression na )
366
370
{
367
- IEnumerable < Expression > exprs = this . VisitExpressionList ( na . Expressions ) ;
371
+ IEnumerable < Expression > exprs = VisitExpressionList ( na . Expressions ) ;
368
372
if ( exprs != na . Expressions )
369
373
{
370
374
if ( na . NodeType == ExpressionType . NewArrayInit )
371
375
{
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 ) ;
377
377
}
378
+
379
+ return Expression . NewArrayBounds ( na . Type . GetElementType ( ) ! , exprs ) ;
378
380
}
379
381
380
382
return na ;
381
383
}
382
384
383
385
protected virtual Expression VisitInvocation ( InvocationExpression iv )
384
386
{
385
- IEnumerable < Expression > args = this . VisitExpressionList ( iv . Arguments ) ;
387
+ IEnumerable < Expression > args = VisitExpressionList ( iv . Arguments ) ;
386
388
Expression expr = Visit ( iv . Expression ) ;
387
389
if ( args != iv . Arguments || expr != iv . Expression )
388
390
{
0 commit comments