code: @Override
  	public JvmTypeReference toJavaCompliantTypeReference(IVisibilityHelper visibilityHelper) {
  		if (!isSynonym()) {
  			List<LightweightTypeReference> nonInterfaceTypes = getNonInterfaceTypes(components);
  			if (nonInterfaceTypes != null) {
  				return toJavaCompliantTypeReference(nonInterfaceTypes, visibilityHelper);
  			}
  		}
  		return toJavaCompliantTypeReference(components, visibilityHelper);
  	}
docs: {@inheritDoc}
  
  If this is a multi-type rather than a {@link #isSynonym() synonym}, the Java compliant
  type reference is determined from the common super type of all participating, non-interface types.
  If there is no such type or this is a synonym, all the component types are used to compute
  the common super type and use that one as the type.