anchor.diff:          ' <<= ',
           ' ??= ',
           ' = '
  -      ]));
  +      ]);
  +      emit(assignOp);
  +      return assignOp;
       } else if (tp == DartType.DOUBLE) {
  -      emit(oneOf(
  -          const <String>[' += ', ' -= ', ' *= ', ' /= ', ' ??= ', ' = ']));
  +      final assignOp =
  +          oneOf(const <String>[' += ', ' -= ', ' *= ', ' /= ', ' ??= ', ' = ']);
  +      emit(assignOp);
  +      return assignOp;
       } else {
  -      emit(oneOf(const <String>[' ??= ', ' = ']));
  +      final assignOp = oneOf(const <String>[' ??= ', ' = ']);
  +      emit(assignOp);
  +      return assignOp;
       }
     }
   
  
positive.code:   //
  
    // Emit same type in-out assignment operator.
    void emitAssignOp(DartType tp) {
      if (tp == DartType.INT) {
        emit(oneOf(const <String>[
          ' += ',
          ' -= ',
          ' *= ',
  
negative.code:     emit("'");
    }
  
    void emitElementExpr(int depth, DartType tp, {RhsFilter rhsFilter}) {
      if (currentMethod != null) {
        emitExpr(depth, tp, rhsFilter: rhsFilter);
      } else {
        emitLiteral(depth, tp, rhsFilter: rhsFilter);
      }
    }
  
    void emitElement(int depth, DartType tp, {RhsFilter rhsFilter}) {
      if (tp == DartType.INT_STRING_MAP) {
        emitSmallPositiveInt();
        emit(' : ');
        emitElementExpr(depth, DartType.STRING, rhsFilter: rhsFilter);
      } else {
        emitElementExpr(depth, DartType.INT, rhsFilter: rhsFilter);
      }
    }
  
    void emitCollectionElement(int depth, DartType tp, {RhsFilter rhsFilter}) {
      int r = depth <= exprDepth ? rand.nextInt(10) : 10;
      switch (r) {
        // Favors elements over control-flow collections.
  