code: public LightweightTypeReference getExpectedReceiverType(JvmIdentifiableElement linkedFeature, LightweightTypeReference receiverType) {
  		if (receiverType.isMultiType() && linkedFeature instanceof JvmMember) {
  			LightweightTypeReference declaratorReference = receiverType.getOwner().newParameterizedTypeReference(((JvmMember) linkedFeature).getDeclaringType());
  			if (!declaratorReference.isAssignableFrom(receiverType.toJavaType())) {
  				for(LightweightTypeReference multiTypeComponent: receiverType.getMultiTypeComponents()) {
  					if (declaratorReference.isAssignableFrom(multiTypeComponent)) {
  						return multiTypeComponent;
  					}
  				}
  			} else {
  				return declaratorReference;
  			}
  		} else if (receiverType.isSynonym() && linkedFeature instanceof JvmMember) {
  			List<LightweightTypeReference> components = receiverType.getMultiTypeComponents();
  			return components.get(components.size() - 1);
  		}
  		return receiverType;
  	}
docs: /* @Nullable