MethodUtils.isChainable: don't load AST for methods that have non-chainable return type

This commit is contained in:
peter
2016-04-26 20:28:13 +02:00
parent a317b31b59
commit 6610725247
@@ -22,6 +22,7 @@ import com.intellij.psi.search.searches.OverridingMethodsSearch;
import com.intellij.psi.search.searches.SuperMethodsSearch;
import com.intellij.psi.util.InheritanceUtil;
import com.intellij.psi.util.MethodSignatureBackedByPsiMethod;
import com.intellij.psi.util.PsiUtil;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.Query;
import com.siyeh.HardcodedMethodConstants;
@@ -328,6 +329,9 @@ public class MethodUtils {
if (method == null) {
return false;
}
if (!InheritanceUtil.isInheritorOrSelf(method.getContainingClass(), PsiUtil.resolveClassInClassTypeOnly(method.getReturnType()), true)) {
return false;
}
final PsiElement navigationElement = method.getNavigationElement();
if (!(navigationElement instanceof PsiMethod)) {
return false;