anchor.diff:        return cps;
       }
   
  -    if (node.selector.isOperator && node.arguments.length == 2) {
  +    if (node.selector.isOperator && node.dartArgumentsLength == 1) {
         Primitive leftArg = node.dartReceiver;
         Primitive rightArg = node.dartArgument(0);
         AbstractConstantValue left = getValue(leftArg);
  
positive.code:       UnaryOperator operator = UnaryOperator.parse(opname);
        AbstractConstantValue result = lattice.unaryOp(operator, receiver);
        return finish(result, canReplace: !receiver.isNullable);
      } else if (node.arguments.length == 2) {
        // Binary operator.
        AbstractConstantValue right = getValue(node.dartArgument(0));
        BinaryOperator operator = BinaryOperator.parse(opname);
  
negative.code:       Primitive receiver = node.dartReceiver;
        AbstractConstantValue receiverValue = getValue(receiver);
        if (name == 'remainder') {
          if (node.dartArgumentsLength == 1) {
            Primitive arg = node.dartArgument(0);
            AbstractConstantValue argValue = getValue(arg);
            if (lattice.isDefinitelyInt(receiverValue, allowNull: true) &&
  