From 4b8db6b75f975341315e3017bb74a6497bfff49e Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Fri, 28 Dec 2018 17:40:57 +0700 Subject: [PATCH] TypeConversionUtil: rollback incorrect method extraction --- .../intellij/psi/util/TypeConversionUtil.java | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/java/java-psi-api/src/com/intellij/psi/util/TypeConversionUtil.java b/java/java-psi-api/src/com/intellij/psi/util/TypeConversionUtil.java index f4f2f6f72164..ba0a40489ae6 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/TypeConversionUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/TypeConversionUtil.java @@ -1029,7 +1029,9 @@ public class TypeConversionUtil { } else { //isSuper if (rightWildcard.isSuper() && bound != null) { - return checkAssignable(bound, leftBound, rightWildcard, allowUncheckedConversion); + NotNullComputable checkAssignable = () -> isAssignable(bound, leftBound, allowUncheckedConversion, false); + final Boolean assignable = ourGuard.doPreventingRecursion(rightWildcard, true, checkAssignable); + return assignable != null && assignable; } return false; } @@ -1039,7 +1041,9 @@ public class TypeConversionUtil { return isAssignable(leftBound, typeRight, false, false); } else { // isSuper - return checkAssignable(typeRight, leftBound, leftWildcard, false); + NotNullComputable checkAssignable = () -> isAssignable(typeRight, leftBound, false, false); + final Boolean assignable = ourGuard.doPreventingRecursion(leftWildcard, true, checkAssignable); + return assignable == null || assignable.booleanValue(); } } } @@ -1048,15 +1052,6 @@ public class TypeConversionUtil { } } - private static boolean checkAssignable(@NotNull PsiType left, - @NotNull PsiType right, - @NotNull PsiWildcardType context, - boolean allowUncheckedConversion) { - NotNullComputable isAssignable = () -> isAssignable(left, right, allowUncheckedConversion, false); - final Boolean assignable = ourGuard.doPreventingRecursion(context, true, isAssignable); - return assignable != null && assignable; - } - @Nullable public static PsiSubstitutor getClassSubstitutor(@NotNull PsiClass superClassCandidate, @NotNull PsiClass derivedClassCandidate,