Minor optimization to function arg parsing
No need for the intermediate collection/objects when we can go direct to ImmutableList,
which has a good chance of doing something more efficient anyway...
PiperOrigin-RevId: 164294883
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Parser.java b/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
index eea376e..e3b14aa 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
@@ -1336,7 +1336,7 @@
boolean hasArg = false;
boolean hasStar = false;
boolean hasStarStar = false;
- ArrayList<V> arguments = new ArrayList<>();
+ ImmutableList.Builder<V> argumentsBuilder = ImmutableList.builder();
while (token.kind != TokenKind.RPAREN && token.kind != TokenKind.EOF) {
if (hasStarStar) {
@@ -1358,9 +1358,9 @@
} else if (arg.isStarStar()) {
hasStarStar = true;
}
- arguments.add(arg);
+ argumentsBuilder.add(arg);
}
- return ImmutableList.copyOf(arguments);
+ return argumentsBuilder.build();
}
// suite is typically what follows a colon (e.g. after def or for).