boolean (final PsiType bound, final PsiType type, final boolean allowUncheckedConversion) { if (bound instanceof PsiWildcardType) { if (((PsiWildcardType)bound).isBounded()) { final PsiType boundBound = ((PsiWildcardType)bound).isExtends() ? ((PsiWildcardType)bound).getExtendsBound() : ((PsiWildcardType)bound).getSuperBound(); return !TypeConversionUtil.isAssignable(boundBound, type, allowUncheckedConversion); } else { return true; } } else { return !TypeConversionUtil.isAssignable(bound, type, allowUncheckedConversion); } }