diff --git a/platform/lang-api/src/com/intellij/lang/parameterInfo/ParameterInfoUtils.java b/platform/lang-api/src/com/intellij/lang/parameterInfo/ParameterInfoUtils.java index f8ed8d2ad4ed..7e1e0bebf62e 100644 --- a/platform/lang-api/src/com/intellij/lang/parameterInfo/ParameterInfoUtils.java +++ b/platform/lang-api/src/com/intellij/lang/parameterInfo/ParameterInfoUtils.java @@ -100,28 +100,30 @@ public class ParameterInfoUtils { while(true){ if (findArgumentListHelper.getArgumentListClass().isInstance(parent)) { TextRange range = parent.getTextRange(); - if (!acceptRparenth){ - if (offset == range.getEndOffset() - 1){ - PsiElement[] children = parent.getChildren(); - if (children.length == 0) return null; - PsiElement last = children[children.length - 1]; - if (last.getNode().getElementType() == findArgumentListHelper.getActualParametersRBraceType()){ + if (range != null) { + if (!acceptRparenth){ + if (offset == range.getEndOffset() - 1){ + PsiElement[] children = parent.getChildren(); + if (children.length == 0) return null; + PsiElement last = children[children.length - 1]; + if (last.getNode().getElementType() == findArgumentListHelper.getActualParametersRBraceType()){ + parent = parent.getParent(); + continue; + } + } + } + if (!acceptLparenth){ + if (offset == range.getStartOffset()){ parent = parent.getParent(); continue; } } - } - if (!acceptLparenth){ - if (offset == range.getStartOffset()){ + if (lbraceOffset >= 0 && range.getStartOffset() != lbraceOffset){ parent = parent.getParent(); continue; } + break; } - if (lbraceOffset >= 0 && range.getStartOffset() != lbraceOffset){ - parent = parent.getParent(); - continue; - } - break; } if (parent instanceof PsiFile || parent == null) return null;