IDEA-86016 False positive 'Recursive call' line marker fix

This commit is contained in:
Danila Ponomarenko
2012-05-14 13:54:56 +04:00
parent 70470e66f7
commit dd1d52b2f6
@@ -180,10 +180,21 @@ public class JavaLineMarkerProvider implements LineMarkerProvider, DumbAware {
}
private static boolean isRecursiveMethodCall(@NotNull PsiMethodCallExpression methodCall){
PsiMethod referencedMethod = methodCall.resolveMethod();
final PsiMethod referencedMethod = methodCall.resolveMethod();
TextRange rmRange = referencedMethod == null ? null : referencedMethod.getTextRange();
int mcOffset = methodCall.getTextRange().getStartOffset();
if (referencedMethod == null || !referencedMethod.isValid() || !methodCall.isValid()){
return false;
}
final PsiFile methodCallFile = methodCall.getContainingFile();
final PsiFile methodFile = referencedMethod.getContainingFile();
if (methodCallFile == null || methodFile == null || !methodCallFile.equals(methodFile)){
return false;
}
final TextRange rmRange = referencedMethod.getTextRange();
final int mcOffset = methodCall.getTextRange().getStartOffset();
return rmRange != null && rmRange.contains(mcOffset);
}