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);
   }