anchor.diff:      for (int i = 0; i < vars.length; i++) {
         DartType tp = vars[i];
         emitLn('${tp.name} $name$i = ', newline: false);
  -      emitLiteral(tp);
  +      emitLiteral(0, tp);
         emit(';', newline: true);
       }
       emit('', newline: true);
  
positive.code: 
    List<DartType> fillTypes1() {
      List<DartType> list = new List<DartType>();
      int n = 1 + rand.nextInt(4);
      for (int i = 0; i < n; i++) {
        list.add(getType());
      }
      return list;
  
negative.code: 
    void emitString() {
      emit("'");
      for (int i = 0, n = rand.nextInt(8); i < n; i++) {
        emitChar();
      }
      emit("'");
    }
  
    void emitElementExpr(int depth, DartType tp) {
      if (currentMethod != null) {
        emitExpr(depth, tp);
      } else {
        emitLiteral(depth, tp);
      }
    }
  
    void emitElement(int depth, DartType tp) {
      if (tp == DartType.INT_STRING_MAP) {
        emitSmallPositiveInt();
        emit(' : ');
        emitElementExpr(depth, DartType.STRING);
      } else {
        emitElementExpr(depth, DartType.INT);
      }
    }
  
    void emitCollectionElement(int depth, DartType tp) {
      int r = depth <= exprDepth ? rand.nextInt(10) : 10;
      switch (r + 3) {
        // TODO(ajcbik): enable when on by default
        // Favors elements over control-flow collections.
        case 0:
          emit('...'); // spread
          emitCollection(depth + 1, tp);
          break;
        case 1:
          emit('if (');
          emitElementExpr(depth + 1, DartType.BOOL);
          emit(') ');
          emitCollectionElement(depth + 1, tp);
          if (rand.nextBool()) {
            emit(' else ');
            emitCollectionElement(depth + 1, tp);
          }
          break;
        case 2:
          {
            int i = localVars.length;
            emit('for (int $localName$i ');
            // For-loop (induction, list, set).
            switch (rand.nextInt(3)) {
              case 0:
                emit('= 0; $localName$i < ');
                emitSmallPositiveInt();
                emit('; $localName$i++) ');
                break;
              case 1:
                emit('in ');
                emitCollection(depth + 1, DartType.INT_LIST);
                emit(') ');
                break;
              default:
                emit('in ');
                emitCollection(depth + 1, DartType.INT_SET);
                emit(') ');
                break;
            }
            nest++;
            localVars.add(DartType.INT);
            emitCollectionElement(depth + 1, tp);
            localVars.removeLast();
            nest--;
            break;
          }
        default:
          emitElement(depth, tp);
          break;
      }
    }
  
    void emitCollection(int depth, DartType tp) {
      emit(tp == DartType.INT_LIST ? '[ ' : '{ ');
      for (int i = 0, n = 1 + rand.nextInt(8); i < n; i++) {
        emitCollectionElement(depth, tp);
        if (i != (n - 1)) {
          emit(', ');
        }
      }
      emit(tp == DartType.INT_LIST ? ' ]' : ' }');
    }
  
    void emitLiteral(int depth, DartType tp) {
      if (tp == DartType.BOOL) {
        emitBool();
      } else if (tp == DartType.INT) {
  