diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetArrayAccessExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetArrayAccessExpression.java index a1e1dff7dfa..4df3429fe9f 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetArrayAccessExpression.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetArrayAccessExpression.java @@ -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 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 getRanges() { List list = new ArrayList(); - JetContainerNode indices = (JetContainerNode) findChildByType(JetNodeTypes.INDICES); + JetContainerNode indices = getIndicesNode(); TextRange textRange = indices.getNode().findChildByType(JetTokens.LBRACKET).getTextRange(); TextRange lBracketRange = textRange.shiftRight(-getTextOffset());