anchor.diff:  const methodName = 'foo';
   
   /// Enum for the different types of methods generated by the fuzzer.
  -enum MethodType { globalMethod, ffiMethod, instanceMethod, extensionMethod }
  +enum MethodType {
  +  globalMethod,
  +  ffiMethod,
  +  instanceMethod,
  +  callMethod,
  +  extensionMethod
  +}
   
   /// Base class for all methods in the program generated by DartFuzz.
   abstract class Method {
  
positive.code:     while (parentClass >= 0) {
        vcm[parentClass] = <int>[];
        for (int j = 0, n = classMethods[parentClass].length; j < n; j++) {
          if (rollDice(8)) {
            currentClass = parentClass;
            currentMethod = j;
            classMethods[parentClass][j].emit();
  
negative.code:       fuzzer.emit(';');
      }
      return outputName;
    }
  
    final String className;
  }
  
  class CallMethod extends Method {
    CallMethod(List<DartType> parameters, DartFuzz fuzzer, this.className)
        : super("call", parameters, fuzzer) {}
  
    @override
    String emitCall(int depth,
        {RhsFilter rhsFilter, bool includeSemicolon = false}) {
      String outputName;
      if (fuzzer.currentClass == null) {
        outputName = "${className}()";
      } else {
        outputName = fuzzer.coinFlip() ? name : "this";
      }
      fuzzer.emitLn(outputName, newline: false);
      fuzzer.emitExprList(depth + 1, parameters, rhsFilter: rhsFilter);
      if (includeSemicolon) {
        fuzzer.emit(';');
      }
      return outputName;
    }
  
    @override
    void emit() {
      // Override the parent class' call method.
      fuzzer.emit("@override");
      fuzzer.emitNewline();
      emitFunctionDefinition();
    }
  
    final String className;
  