Keep function parameters in the AST.

--
MOS_MIGRATED_REVID=102330569
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 67c9ceb..1075e15 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
@@ -1329,21 +1329,17 @@
     expect(TokenKind.DEF);
     Identifier ident = parseIdent();
     expect(TokenKind.LPAREN);
-    FunctionSignature.WithValues<Expression, Expression> args = parseFunctionSignature();
+    List<Parameter<Expression, Expression>> params = parseParameters();
+    FunctionSignature.WithValues<Expression, Expression> signature = functionSignature(params);
     expect(TokenKind.RPAREN);
     expect(TokenKind.COLON);
     List<Statement> block = parseSuite();
-    FunctionDefStatement stmt = new FunctionDefStatement(ident, args, block);
+    FunctionDefStatement stmt = new FunctionDefStatement(ident, params, signature, block);
     list.add(setLocation(stmt, start, token.right));
   }
 
-  private FunctionSignature.WithValues<Expression, Expression> parseFunctionSignature() {
-    List<Parameter<Expression, Expression>> parameters =
-        parseFunctionArguments(new Supplier<Parameter<Expression, Expression>>() {
-              @Override public Parameter<Expression, Expression> get() {
-                return parseFunctionParameter();
-              }
-            });
+  private FunctionSignature.WithValues<Expression, Expression> functionSignature(
+      List<Parameter<Expression, Expression>> parameters) {
     try {
       return FunctionSignature.WithValues.<Expression, Expression>of(parameters);
     } catch (FunctionSignature.SignatureException e) {
@@ -1353,6 +1349,15 @@
     }
   }
 
+  private List<Parameter<Expression, Expression>> parseParameters() {
+    return parseFunctionArguments(
+        new Supplier<Parameter<Expression, Expression>>() {
+          @Override public Parameter<Expression, Expression> get() {
+            return parseFunctionParameter();
+          }
+        });
+  }
+
   /**
    * Parse a list of Argument-s. The arguments can be of class Argument.Passed or Parameter,
    * as returned by the Supplier parseArgument (that, taking no argument, must be closed over