BenchMaker: Print function type arguments correctly
Change-Id: Ieeae9ed53d86c2c2409be67397fad300f04849dc
Reviewed-on: https://dart-review.googlesource.com/c/93947
Reviewed-by: Jens Johansen <jensj@google.com>
diff --git a/pkg/front_end/tool/_fasta/bench_maker.dart b/pkg/front_end/tool/_fasta/bench_maker.dart
index dde8ba3..806dfb1 100644
--- a/pkg/front_end/tool/_fasta/bench_maker.dart
+++ b/pkg/front_end/tool/_fasta/bench_maker.dart
@@ -197,7 +197,40 @@
sb.write(">");
}
sb.write("(");
- // TODO(ahe): Write function arguments here.
+ bool first = true;
+ for (int i = 0; i < node.requiredParameterCount; i++) {
+ if (!first) sb.write(", ");
+ node.positionalParameters[i].accept1(this, sb);
+ first = false;
+ }
+ if (node.requiredParameterCount != node.positionalParameters.length) {
+ if (!first) sb.write(", ");
+ sb.write("[");
+ first = true;
+ for (int i = node.requiredParameterCount;
+ i < node.positionalParameters.length;
+ i++) {
+ if (!first) sb.write(", ");
+ node.positionalParameters[i].accept1(this, sb);
+ first = false;
+ }
+ sb.write("]");
+ first = false;
+ }
+ if (node.namedParameters.isNotEmpty) {
+ if (!first) sb.write(", ");
+ sb.write("{");
+ first = true;
+ for (NamedType named in node.namedParameters) {
+ if (!first) sb.write(", ");
+ named.type.accept1(this, sb);
+ sb.write(" ");
+ sb.write(named.name);
+ first = false;
+ }
+ sb.write("}");
+ first = false;
+ }
sb.write(") -> ");
node.returnType.accept1(this, sb);
}