public Iterable<JvmFeature> getAllJvmFeatures(JvmTypeReference type) { if (type == null) return Collections.emptyList(); ITypeArgumentContext context = contextProvider.getTypeArgumentContext( new TypeArgumentContextProvider.ReceiverRequest(type)); JvmType rawType = type.getType(); if (rawType == null || rawType.eIsProxy() || !(rawType instanceof JvmDeclaredType)) return Collections.emptyList(); return getAllJvmFeatures((JvmDeclaredType) rawType, context); }