boolean (PsiTypeParameter typeParam, PsiType type1, PsiType type2) { final PsiClassType[] paramBounds = typeParam.getExtendsListTypes(); if (paramBounds.length == 0) return !(type1 instanceof PsiClassType); return ContainerUtil.exists(paramBounds, paramBound -> !TypeConversionUtil.isAssignable(paramBound.rawType(), type2)); }