FunctionPrototype extends Declaration { public void removeParameter(int index) { parameters.remove(index); } FunctionPrototype(String name, Type returnType, List<ParameterDecl> parameters);  FunctionPrototype(String name, Type returnType, Type... args); String getName(); void setName(String name); Type getReturnType(); List<ParameterDecl> getParameters(); int getNumParameters(); ParameterDecl getParameter(int index); void removeParameter(int index); boolean matches(FunctionPrototype functionPrototype); boolean clashes(FunctionPrototype functionPrototype); @Override void accept(IAstVisitor visitor); @Override FunctionPrototype clone();  }
@Test public void removeParameter() { proto.removeParameter(1); assertEquals(p1, proto.getParameter(0)); assertEquals(p3, proto.getParameter(1)); assertEquals(2, proto.getNumParameters()); }