From 66107252479697272406eaae3620e11eafb959ae Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 26 Apr 2016 20:01:20 +0200 Subject: [PATCH] MethodUtils.isChainable: don't load AST for methods that have non-chainable return type --- .../src/com/siyeh/ig/psiutils/MethodUtils.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/MethodUtils.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/MethodUtils.java index 688c84070fc6..3fc22705a72d 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/MethodUtils.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/MethodUtils.java @@ -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;