boolean (final PsiMethod psiMethod, final PsiType returnType, @NotNull final PsiType currentType) { final PsiTypeParameter[] typeParameters = psiMethod.getTypeParameters(); final PsiSubstitutor substitutor = JavaPsiFacade.getInstance(psiMethod.getProject()).getResolveHelper().inferTypeArguments(typeParameters, new PsiType[]{returnType}, new PsiType[]{currentType}, PsiUtil.getLanguageLevel(psiMethod)); return !TypeConversionUtil.isAssignable(currentType, substitutor.substitute(returnType)); }