avoid NPE in reference

This commit is contained in:
Dmitry Jemerov
2011-06-17 12:48:01 +02:00
parent 392dce3207
commit 1e0eb7692e
@@ -24,7 +24,8 @@ public class JetArrayAccessExpression extends JetReferenceExpression {
@Override
public PsiReference getReference() {
return new JetArrayAccessReference();
JetContainerNode indicesNode = getIndicesNode();
return indicesNode == null ? null : new JetArrayAccessReference();
}
@Override
@@ -41,11 +42,15 @@ public class JetArrayAccessExpression extends JetReferenceExpression {
@NotNull
public List<JetExpression> getIndexExpressions() {
PsiElement container = findChildByType(JetNodeTypes.INDICES);
PsiElement container = getIndicesNode();
if (container == null) return Collections.emptyList();
return PsiTreeUtil.getChildrenOfTypeAsList(container, JetExpression.class);
}
private JetContainerNode getIndicesNode() {
return (JetContainerNode) findChildByType(JetNodeTypes.INDICES);
}
private class JetArrayAccessReference extends JetPsiReference implements MultiRangeReference {
@Override
@@ -62,7 +67,7 @@ public class JetArrayAccessExpression extends JetReferenceExpression {
public List<TextRange> getRanges() {
List<TextRange> list = new ArrayList<TextRange>();
JetContainerNode indices = (JetContainerNode) findChildByType(JetNodeTypes.INDICES);
JetContainerNode indices = getIndicesNode();
TextRange textRange = indices.getNode().findChildByType(JetTokens.LBRACKET).getTextRange();
TextRange lBracketRange = textRange.shiftRight(-getTextOffset());