@@ -236,7 +236,7 @@ private Expression ReplaceIn(BlockExpression block)
236236 {
237237 return ReplaceIn (
238238 block ,
239- b => b . Update ( b . Variables . Project ( ReplaceIn ) , b . Expressions . Project ( Replace ) ) ) ;
239+ b => b . Update ( b . Variables . ProjectToArray ( ReplaceIn ) , b . Expressions . ProjectToArray ( Replace ) ) ) ;
240240 }
241241
242242 private Expression ReplaceIn ( MethodCallExpression call )
@@ -247,29 +247,29 @@ private Expression ReplaceIn(MethodCallExpression call)
247247 private Expression ReplaceIn ( GotoExpression @goto ) => ReplaceIn ( @goto , gt => gt . Update ( gt . Target , Replace ( gt . Value ) ) ) ;
248248
249249 private Expression ReplaceIn ( IndexExpression indexAccess )
250- => ReplaceIn ( indexAccess , idx => idx . Update ( Replace ( idx . Object ) , idx . Arguments . Project ( Replace ) ) ) ;
250+ => ReplaceIn ( indexAccess , idx => idx . Update ( Replace ( idx . Object ) , idx . Arguments . ProjectToArray ( Replace ) ) ) ;
251251
252252 private Expression ReplaceIn ( InvocationExpression invocation )
253253 => ReplaceIn ( invocation , inv => ReplaceInCall ( inv . Expression , inv . Arguments , inv . Update ) ) ;
254254
255255 private Expression ReplaceInCall (
256256 Expression subject ,
257- IEnumerable < Expression > arguments ,
257+ IList < Expression > arguments ,
258258 Func < Expression , IEnumerable < Expression > , Expression > replacer )
259259 {
260- return replacer . Invoke ( Replace ( subject ) , arguments . Project ( Replace ) . ToArray ( ) ) ;
260+ return replacer . Invoke ( Replace ( subject ) , arguments . ProjectToArray ( Replace ) ) ;
261261 }
262262
263263 private Expression ReplaceIn ( LabelExpression label )
264264 => ReplaceIn ( label , l => l . Update ( l . Target , Replace ( l . DefaultValue ) ) ) ;
265265
266266 private Expression ReplaceIn ( LambdaExpression lambda )
267- => ReplaceIn ( lambda , l => Expression . Lambda ( l . Type , Replace ( l . Body ) , l . Parameters . Project ( ReplaceIn ) ) ) ;
267+ => ReplaceIn ( lambda , l => Expression . Lambda ( l . Type , Replace ( l . Body ) , l . Parameters . ProjectToArray ( ReplaceIn ) ) ) ;
268268
269269 private Expression ReplaceIn ( MemberExpression memberAccess ) => ReplaceIn ( memberAccess , ma => ma . Update ( Replace ( ma . Expression ) ) ) ;
270270
271271 private Expression ReplaceIn ( MemberInitExpression memberInit )
272- => ReplaceIn ( memberInit , mi => mi . Update ( ReplaceInNew ( mi . NewExpression ) , mi . Bindings . Project ( ReplaceIn ) ) ) ;
272+ => ReplaceIn ( memberInit , mi => mi . Update ( ReplaceInNew ( mi . NewExpression ) , mi . Bindings . ProjectToArray ( ReplaceIn ) ) ) ;
273273
274274 private Expression ReplaceIn ( ListInitExpression listInit )
275275 => ReplaceIn ( listInit , li => li . Update ( ReplaceInNew ( li . NewExpression ) , ReplaceIn ( li . Initializers ) ) ) ;
@@ -290,25 +290,25 @@ private MemberBinding ReplaceIn(MemberBinding binding)
290290
291291 case MemberBindingType . MemberBinding :
292292 var memberBinding = ( MemberMemberBinding ) binding ;
293- return memberBinding . Update ( memberBinding . Bindings . Project ( ReplaceIn ) ) ;
293+ return memberBinding . Update ( memberBinding . Bindings . ProjectToArray ( ReplaceIn ) ) ;
294294 }
295295
296296 throw new ArgumentOutOfRangeException ( ) ;
297297 }
298298
299- private IEnumerable < ElementInit > ReplaceIn ( IEnumerable < ElementInit > initializers )
300- => initializers . Project ( init => init . Update ( init . Arguments . Project ( Replace ) ) ) ;
299+ private IEnumerable < ElementInit > ReplaceIn ( IList < ElementInit > initializers )
300+ => initializers . ProjectToArray ( init => init . Update ( init . Arguments . ProjectToArray ( Replace ) ) ) ;
301301
302302 private Expression ReplaceIn ( NewExpression newing ) => ReplaceIn ( newing , ReplaceInNew ) ;
303303
304304 private NewExpression ReplaceInNew ( NewExpression newing )
305305 {
306306 return newing . Arguments . None ( )
307307 ? newing
308- : newing . Update ( newing . Arguments . Project ( Replace ) ) ;
308+ : newing . Update ( newing . Arguments . ProjectToArray ( Replace ) ) ;
309309 }
310310
311- private Expression ReplaceIn ( NewArrayExpression newArray ) => ReplaceIn ( newArray , na => na . Update ( na . Expressions . Project ( Replace ) ) ) ;
311+ private Expression ReplaceIn ( NewArrayExpression newArray ) => ReplaceIn ( newArray , na => na . Update ( na . Expressions . ProjectToArray ( Replace ) ) ) ;
312312
313313 private ParameterExpression ReplaceIn ( ParameterExpression parameter ) => ( ParameterExpression ) ReplaceIn ( parameter , p => p ) ;
314314
@@ -320,7 +320,7 @@ private Expression ReplaceIn(TryExpression @try)
320320 {
321321 return ReplaceIn (
322322 @try ,
323- t => t . Update ( Replace ( t . Body ) , t . Handlers . Project ( ReplaceIn ) , Replace ( t . Finally ) , Replace ( t . Fault ) ) ) ;
323+ t => t . Update ( Replace ( t . Body ) , t . Handlers . ProjectToArray ( ReplaceIn ) , Replace ( t . Finally ) , Replace ( t . Fault ) ) ) ;
324324 }
325325
326326 private CatchBlock ReplaceIn ( CatchBlock @catch )
0 commit comments