avoid NPE in reference
This commit is contained in:
@@ -24,7 +24,8 @@ public class JetArrayAccessExpression extends JetReferenceExpression {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PsiReference getReference() {
|
public PsiReference getReference() {
|
||||||
return new JetArrayAccessReference();
|
JetContainerNode indicesNode = getIndicesNode();
|
||||||
|
return indicesNode == null ? null : new JetArrayAccessReference();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -41,11 +42,15 @@ public class JetArrayAccessExpression extends JetReferenceExpression {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public List<JetExpression> getIndexExpressions() {
|
public List<JetExpression> getIndexExpressions() {
|
||||||
PsiElement container = findChildByType(JetNodeTypes.INDICES);
|
PsiElement container = getIndicesNode();
|
||||||
if (container == null) return Collections.emptyList();
|
if (container == null) return Collections.emptyList();
|
||||||
return PsiTreeUtil.getChildrenOfTypeAsList(container, JetExpression.class);
|
return PsiTreeUtil.getChildrenOfTypeAsList(container, JetExpression.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private JetContainerNode getIndicesNode() {
|
||||||
|
return (JetContainerNode) findChildByType(JetNodeTypes.INDICES);
|
||||||
|
}
|
||||||
|
|
||||||
private class JetArrayAccessReference extends JetPsiReference implements MultiRangeReference {
|
private class JetArrayAccessReference extends JetPsiReference implements MultiRangeReference {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -62,7 +67,7 @@ public class JetArrayAccessExpression extends JetReferenceExpression {
|
|||||||
public List<TextRange> getRanges() {
|
public List<TextRange> getRanges() {
|
||||||
List<TextRange> list = new ArrayList<TextRange>();
|
List<TextRange> list = new ArrayList<TextRange>();
|
||||||
|
|
||||||
JetContainerNode indices = (JetContainerNode) findChildByType(JetNodeTypes.INDICES);
|
JetContainerNode indices = getIndicesNode();
|
||||||
TextRange textRange = indices.getNode().findChildByType(JetTokens.LBRACKET).getTextRange();
|
TextRange textRange = indices.getNode().findChildByType(JetTokens.LBRACKET).getTextRange();
|
||||||
TextRange lBracketRange = textRange.shiftRight(-getTextOffset());
|
TextRange lBracketRange = textRange.shiftRight(-getTextOffset());
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user