From 1e0eb7692ea69a59a4662033dd4c0d4443fde830 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 17 Jun 2011 12:48:01 +0200 Subject: [PATCH] avoid NPE in reference --- .../jet/lang/psi/JetArrayAccessExpression.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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());