anchor.diff:      }
     }
   
  -  /**
  -   * Write the code for a new parameter with the given [type] and [name].
  -   */
  -  Future<DartChangeBuilder> addParameter(int offset, String prefix,
  -      DartType type, String name, String suffix) async {
  -    String targetFile = executable.source.fullName;
  -    var changeBuilder = new DartChangeBuilder(session);
  -    await changeBuilder.addFileEdit(targetFile, (builder) {
  -      builder.addInsertion(offset, (builder) {
  -        builder.write(prefix);
  -        builder.writeParameter(name, type: type);
  -        builder.write(suffix);
  -      });
  -    });
  -    return changeBuilder;
  -  }
  +  String get file => executable.source.fullName;
   
     /**
      * Return the [FormalParameterList] of the [executable], or `null` is cannot
  
positive.code:  * [ExecutableElement], its parameters, and operations on them.
   */
  class _ExecutableParameters {
    final AnalysisSession session;
    final AstProvider astProvider;
    final ExecutableElement executable;
  
  
negative.code:   final List<ParameterElement> optionalPositional = [];
    final List<ParameterElement> named = [];
  
    factory _ExecutableParameters(AstProvider astProvider, AstNode invocation) {
      Element element;
      if (invocation is InstanceCreationExpression) {
        element = invocation.staticElement;
  