@@ -28,7 +28,7 @@ THE SOFTWARE.
28
28
// #define LIGHT_EXPRESSION
29
29
#if DEBUG && NET6_0_OR_GREATER
30
30
#define DEBUG_INFO_LOCAL_VARIABLE_USAGE
31
- #define DEMIT
31
+ // #define DEMIT
32
32
#endif
33
33
#if LIGHT_EXPRESSION
34
34
#define SUPPORTS_ARGUMENT_PROVIDER
@@ -8330,8 +8330,10 @@ private static StringBuilder ToCSharpString(this IReadOnlyList<MemberBinding> bi
8330
8330
StringBuilder sb , EnclosedIn enclosedIn , ref SmallList4 < NamedWithIndex > named ,
8331
8331
int lineIndent = 0 , bool stripNamespace = false , Func < Type , string , string > printType = null , int indentSpaces = 4 , ObjectToCode notRecognizedToCode = null )
8332
8332
{
8333
- foreach ( var b in bindings )
8333
+ var count = bindings . Count ;
8334
+ for ( var i = 0 ; i < count ; i ++ )
8334
8335
{
8336
+ var b = bindings [ i ] ;
8335
8337
sb . NewLineIndent ( lineIndent ) ;
8336
8338
sb . Append ( b . Member . Name ) . Append ( " = " ) ;
8337
8339
@@ -8350,25 +8352,33 @@ private static StringBuilder ToCSharpString(this IReadOnlyList<MemberBinding> bi
8350
8352
else if ( b is MemberListBinding mlb )
8351
8353
{
8352
8354
sb . Append ( "{" ) ;
8353
- foreach ( var i in mlb . Initializers )
8355
+ var elemInits = mlb . Initializers ;
8356
+ var elemCount = elemInits . Count ;
8357
+ for ( var e = 0 ; e < elemCount ; e ++ )
8354
8358
{
8359
+ var args = elemInits [ e ] . Arguments ;
8355
8360
sb . NewLineIndent ( lineIndent + indentSpaces ) ;
8356
- if ( i . Arguments . Count > 1 )
8361
+ var manyArgs = args . Count > 1 ;
8362
+ if ( manyArgs )
8357
8363
sb . Append ( "(" ) ;
8358
8364
8359
8365
var n = 0 ;
8360
- foreach ( var a in i . Arguments )
8361
- a . ToCSharpString ( ( ++ n > 1 ? sb . Append ( ", " ) : sb ) , EnclosedIn . ParensByDefault , ref named ,
8366
+ foreach ( var arg in args )
8367
+ arg . ToCSharpString ( ( ++ n > 1 ? sb . Append ( ", " ) : sb ) , EnclosedIn . ParensByDefault , ref named ,
8362
8368
lineIndent + indentSpaces , stripNamespace , printType , indentSpaces , notRecognizedToCode ) ;
8363
8369
8364
- if ( i . Arguments . Count > 1 )
8370
+ if ( manyArgs )
8365
8371
sb . Append ( ")" ) ;
8366
8372
8367
- sb . Append ( "," ) ;
8373
+ if ( e < elemCount - 1 )
8374
+ sb . Append ( "," ) ;
8368
8375
}
8369
8376
sb . NewLineIndent ( lineIndent + indentSpaces ) . Append ( "}" ) ;
8370
8377
}
8371
- sb . Append ( "," ) ;
8378
+
8379
+ // don't place comma after the last binding
8380
+ if ( i < count - 1 )
8381
+ sb . Append ( "," ) ;
8372
8382
}
8373
8383
return sb ;
8374
8384
}
0 commit comments