docs: protected void ensureLinkingOperation() {
  		if (!this.hasLinkingOperation) {
  			this.hasLinkingOperation = true;
  			final XExpression target = getExpression().getTarget();
  			if (!hasReceiver()) {
  				// Static call
  				this.receiver = null;
  				this.argument = target;
  			} else if (getOperation().getParameters().isEmpty()) {
  				// Call on the receiver instance
  				this.receiver = target;
  				this.argument = null;
  			} else {
  				// Call to an object that is not the target, with the target as arugment
  				this.argument = target;
  
  				final XExpression obj1 = this.description.getSyntacticReceiver();
  				final XExpression obj2 = this.description.getImplicitFirstArgument();
  				final XExpression obj3 = this.description.getImplicitReceiver();
  
  				if (obj1 != null && obj1 != target) {
  					this.receiver = obj1;
  				} else if (obj2 != null && obj2 != target) {
  					this.receiver = obj2;
  				} else if (obj3 != target) {
  					this.receiver = obj3;
  				} else {
  					this.receiver = null;
  				}
  			}
  		}
  	}