Keep function parameters in the AST.

--
MOS_MIGRATED_REVID=102330569
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/FunctionDefStatement.java b/src/main/java/com/google/devtools/build/lib/syntax/FunctionDefStatement.java
index f9e26ed..ae7c027 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/FunctionDefStatement.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/FunctionDefStatement.java
@@ -16,7 +16,6 @@
 import com.google.common.collect.ImmutableList;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.List;
 
 /**
@@ -25,20 +24,23 @@
 public class FunctionDefStatement extends Statement {
 
   private final Identifier ident;
-  private final FunctionSignature.WithValues<Expression, Expression> args;
+  private final FunctionSignature.WithValues<Expression, Expression> signature;
   private final ImmutableList<Statement> statements;
+  private final ImmutableList<Parameter<Expression, Expression>> parameters;
 
   public FunctionDefStatement(Identifier ident,
-      FunctionSignature.WithValues<Expression, Expression> args,
-      Collection<Statement> statements) {
+      Iterable<Parameter<Expression, Expression>> parameters,
+      FunctionSignature.WithValues<Expression, Expression> signature,
+      Iterable<Statement> statements) {
     this.ident = ident;
-    this.args = args;
+    this.signature = signature;
     this.statements = ImmutableList.copyOf(statements);
+    this.parameters = ImmutableList.copyOf(parameters);
   }
 
   @Override
   void exec(Environment env) throws EvalException, InterruptedException {
-    List<Expression> defaultExpressions = args.getDefaultValues();
+    List<Expression> defaultExpressions = signature.getDefaultValues();
     ArrayList<Object> defaultValues = null;
     ArrayList<SkylarkType> types = null;
 
@@ -50,13 +52,13 @@
     }
     env.update(ident.getName(), new UserDefinedFunction(
         ident, FunctionSignature.WithValues.<Object, SkylarkType>create(
-            args.getSignature(), defaultValues, types),
+            signature.getSignature(), defaultValues, types),
         statements, (SkylarkEnvironment) env));
   }
 
   @Override
   public String toString() {
-    return "def " + ident + "(" + args + "):\n";
+    return "def " + ident + "(" + signature + "):\n";
   }
 
   public Identifier getIdent() {
@@ -67,8 +69,12 @@
     return statements;
   }
 
-  public FunctionSignature.WithValues<Expression, Expression> getArgs() {
-    return args;
+  public ImmutableList<Parameter<Expression, Expression>> getParameters() {
+    return parameters;
+  }
+
+  public FunctionSignature.WithValues<Expression, Expression> getSignature() {
+    return signature;
   }
 
   @Override
@@ -79,10 +85,10 @@
   @Override
   void validate(final ValidationEnvironment env) throws EvalException {
     ValidationEnvironment localEnv = new ValidationEnvironment(env);
-    FunctionSignature sig = args.getSignature();
+    FunctionSignature sig = signature.getSignature();
     FunctionSignature.Shape shape = sig.getShape();
     ImmutableList<String> names = sig.getNames();
-    List<Expression> defaultExpressions = args.getDefaultValues();
+    List<Expression> defaultExpressions = signature.getDefaultValues();
 
     int positionals = shape.getPositionals();
     int mandatoryPositionals = shape.getMandatoryPositionals();