anchor.diff:        var calleeType = getOrComputeElementType(callee);
         // TODO(paulberry): substitute if necessary
         assert(calleeType.positionalParameters.length > 0); // TODO(paulberry)
  -      _handleAssignment(calleeType.positionalParameters[0], node.rightOperand);
  +      _handleAssignment(node.rightOperand, calleeType.positionalParameters[0]);
         return calleeType.returnType;
       } else {
         // TODO(paulberry)
  
positive.code:       expressionChecks = ExpressionChecks(expression.end);
        _variables.recordExpressionChecks(_source, expression, expressionChecks);
      }
      _checkAssignment(destinationType, sourceType, expressionChecks,
          hard: _isVariableOrParameterReference(expression) &&
              !_inConditionalControlFlow);
      return sourceType;
  
negative.code:       return _nonNullableBoolType;
      } else if (operatorType == TokenType.AMPERSAND_AMPERSAND ||
          operatorType == TokenType.BAR_BAR) {
        _handleAssignment(node.leftOperand, _notNullType);
        _handleAssignment(node.rightOperand, _notNullType);
        return _nonNullableBoolType;
      } else if (operatorType == TokenType.QUESTION_QUESTION) {
        DecoratedType expressionType;
  