@@ -128,10 +128,7 @@ module Crystal
128
128
@str << " ["
129
129
end
130
130
131
- node.elements.each_with_index do |exp , i |
132
- @str << " , " if i > 0
133
- exp.accept self
134
- end
131
+ node.elements.join(" , " , @str , & .accept self )
135
132
136
133
if name
137
134
@str << " }"
@@ -183,8 +180,7 @@ module Crystal
183
180
184
181
def visit (node : NamedTupleLiteral )
185
182
@str << " {"
186
- node.entries.each_with_index do |entry , i |
187
- @str << " , " if i > 0
183
+ node.entries.join(" , " , @str ) do |entry |
188
184
visit_named_arg_name(entry.key)
189
185
@str << " : "
190
186
entry.value.accept self
@@ -375,10 +371,7 @@ module Crystal
375
371
if node.name.ends_with?('=' ) && node.name[0 ].ascii_letter?
376
372
@str << decorate_call(node, node.name.rchop)
377
373
@str << " = "
378
- node.args.each_with_index do |arg , i |
379
- @str << " , " if i > 0
380
- arg.accept self
381
- end
374
+ node.args.join(" , " , @str , & .accept self )
382
375
else
383
376
@str << decorate_call(node, node.name)
384
377
@@ -569,15 +562,9 @@ module Crystal
569
562
end
570
563
571
564
def visit (node : MultiAssign )
572
- node.targets.each_with_index do |target , i |
573
- @str << " , " if i > 0
574
- target.accept self
575
- end
565
+ node.targets.join(" , " , @str , & .accept self )
576
566
@str << " = "
577
- node.values.each_with_index do |value , i |
578
- @str << " , " if i > 0
579
- value.accept self
580
- end
567
+ node.values.join(" , " , @str , & .accept self )
581
568
false
582
569
end
583
570
@@ -614,10 +601,7 @@ module Crystal
614
601
@str << " ->"
615
602
if node.def.args.size > 0
616
603
@str << " ("
617
- node.def.args.each_with_index do |arg , i |
618
- @str << " , " if i > 0
619
- arg.accept self
620
- end
604
+ node.def.args.join(" , " , @str , & .accept self )
621
605
@str << " )"
622
606
end
623
607
@str << " "
@@ -639,10 +623,7 @@ module Crystal
639
623
640
624
if node.args.size > 0
641
625
@str << " ("
642
- node.args.each_with_index do |arg , i |
643
- @str << " , " if i > 0
644
- arg.accept self
645
- end
626
+ node.args.join(" , " , @str , & .accept self )
646
627
@str << " )"
647
628
end
648
629
false
@@ -765,10 +746,7 @@ module Crystal
765
746
766
747
def visit (node : MacroFor )
767
748
@str << " {% for "
768
- node.vars.each_with_index do |var , i |
769
- @str << " , " if i > 0
770
- var.accept self
771
- end
749
+ node.vars.join(" , " , @str , & .accept self )
772
750
@str << " in "
773
751
node.exp.accept self
774
752
@str << " %}"
@@ -784,10 +762,7 @@ module Crystal
784
762
@str << node.name
785
763
if exps = node.exps
786
764
@str << '{'
787
- exps.each_with_index do |exp , i |
788
- @str << " , " if i > 0
789
- exp.accept self
790
- end
765
+ exps.join(" , " , @str , & .accept self )
791
766
@str << '}'
792
767
end
793
768
false
@@ -838,10 +813,7 @@ module Crystal
838
813
def visit (node : ProcNotation )
839
814
@str << " ("
840
815
if inputs = node.inputs
841
- inputs.each_with_index do |input , i |
842
- @str << " , " if i > 0
843
- input.accept self
844
- end
816
+ inputs.join(" , " , @str , & .accept self )
845
817
@str << " "
846
818
end
847
819
@str << " -> "
@@ -857,10 +829,8 @@ module Crystal
857
829
end
858
830
859
831
def visit (node : Path )
860
- node.names.each_with_index do |name , i |
861
- @str << " ::" if i > 0 || node.global?
862
- @str << name
863
- end
832
+ @str << " ::" if node.global?
833
+ node.names.join(" ::" , @str )
864
834
end
865
835
866
836
def visit (node : Generic )
@@ -886,8 +856,7 @@ module Crystal
886
856
printed_arg = false
887
857
888
858
@str << " ("
889
- node.type_vars.each_with_index do |var , i |
890
- @str << " , " if i > 0
859
+ node.type_vars.join(" , " , @str ) do |var |
891
860
var.accept self
892
861
printed_arg = true
893
862
end
@@ -932,10 +901,7 @@ module Crystal
932
901
end
933
902
934
903
def visit (node : Union )
935
- node.types.each_with_index do |ident , i |
936
- @str << " | " if i > 0
937
- ident.accept self
938
- end
904
+ node.types.join(" | " , @str , & .accept self )
939
905
false
940
906
end
941
907
@@ -970,10 +936,7 @@ module Crystal
970
936
@str << keyword(" yield" )
971
937
if node.exps.size > 0
972
938
@str << " "
973
- node.exps.each_with_index do |exp , i |
974
- @str << " , " if i > 0
975
- exp.accept self
976
- end
939
+ node.exps.join(" , " , @str , & .accept self )
977
940
end
978
941
false
979
942
end
@@ -1020,10 +983,7 @@ module Crystal
1020
983
first = node.elements.first?
1021
984
space = first.is_a?(TupleLiteral ) || first.is_a?(NamedTupleLiteral ) || first.is_a?(HashLiteral )
1022
985
@str << " " if space
1023
- node.elements.each_with_index do |exp , i |
1024
- @str << " , " if i > 0
1025
- exp.accept self
1026
- end
986
+ node.elements.join(" , " , @str , & .accept self )
1027
987
@str << " " if space
1028
988
@str << " }"
1029
989
false
@@ -1147,8 +1107,7 @@ module Crystal
1147
1107
end
1148
1108
if node.args.size > 0
1149
1109
@str << " ("
1150
- node.args.each_with_index do |arg , i |
1151
- @str << " , " if i > 0
1110
+ node.args.join(" , " , @str ) do |arg |
1152
1111
if arg_name = arg.name
1153
1112
@str << arg_name << " : "
1154
1113
end
@@ -1328,10 +1287,7 @@ module Crystal
1328
1287
append_indent
1329
1288
@str << keyword(" when" )
1330
1289
@str << " "
1331
- node.conds.each_with_index do |cond , i |
1332
- @str << " , " if i > 0
1333
- cond.accept self
1334
- end
1290
+ node.conds.join(" , " , @str , & .accept self )
1335
1291
newline
1336
1292
accept_with_indent node.body
1337
1293
false
@@ -1401,10 +1357,7 @@ module Crystal
1401
1357
@str << " :"
1402
1358
end
1403
1359
@str << " "
1404
- types.each_with_index do |type , i |
1405
- @str << " | " if i > 0
1406
- type .accept self
1407
- end
1360
+ types.join(" | " , @str , & .accept self )
1408
1361
end
1409
1362
newline
1410
1363
accept_with_indent node.body
@@ -1423,10 +1376,7 @@ module Crystal
1423
1376
def visit (node : TypeOf )
1424
1377
@str << keyword(" typeof" )
1425
1378
@str << " ("
1426
- node.expressions.each_with_index do |exp , i |
1427
- @str << " , " if i > 0
1428
- exp.accept self
1429
- end
1379
+ node.expressions.join(" , " , @str , & .accept self )
1430
1380
@str << " )"
1431
1381
false
1432
1382
end
@@ -1437,8 +1387,7 @@ module Crystal
1437
1387
if ! node.args.empty? || node.named_args
1438
1388
@str << " ("
1439
1389
printed_arg = false
1440
- node.args.each_with_index do |arg , i |
1441
- @str << " , " if i > 0
1390
+ node.args.join(" , " , @str ) do |arg |
1442
1391
arg.accept self
1443
1392
printed_arg = true
1444
1393
end
@@ -1472,17 +1421,11 @@ module Crystal
1472
1421
@str << " :"
1473
1422
if inputs = node.inputs
1474
1423
@str << " "
1475
- inputs.each_with_index do |input , i |
1476
- @str << " , " if i > 0
1477
- input.accept self
1478
- end
1424
+ inputs.join(" , " , @str , & .accept self )
1479
1425
end
1480
1426
if clobbers = node.clobbers
1481
1427
@str << " : "
1482
- clobbers.each_with_index do |clobber , i |
1483
- @str << " , " if i > 0
1484
- clobber.inspect(@str )
1485
- end
1428
+ clobbers.join(" , " , @str , & .inspect @str )
1486
1429
end
1487
1430
if node.volatile? || node.alignstack? || node.intel?
1488
1431
@str << " : "
0 commit comments