code: public LightweightTypeReference getReturnTypeOfOverriddenOperation(JvmOperation operation, ITypeReferenceOwner owner, IVisibilityHelper visibilityHelper) {
  		if (operation.getVisibility() == JvmVisibility.PRIVATE || !InferredTypeIndicator.isInferred(operation.getReturnType())) {
  			return null;
  		}
  		LightweightTypeReference declaringType = owner.newParameterizedTypeReference(operation.getDeclaringType());
  		TypeParameterSubstitutor<?> substitutor = createSubstitutor(owner, declaringType);
  		JvmOperation overriddenOperation = findOverriddenOperation(operation, declaringType, substitutor, owner, visibilityHelper);
  		if (overriddenOperation != null) {
  			return substitutor.substitute(owner.toLightweightTypeReference(overriddenOperation.getReturnType()));
  		}
  		return null;
  	}
docs: /* @Nullable