@Override
  ExceptionLineRefiner.RefinerMatchResult matchSpecificExceptionElement(@NotNull PsiElement e) {
    if (!(e instanceof PsiJavaToken && e.textMatches("[") && e.getParent() instanceof PsiArrayAccessExpression)) {
      return null;
    }
    PsiExpression indexExpression = ((PsiArrayAccessExpression)e.getParent()).getIndexExpression();
    if (indexExpression == null) return null;
    if (myIndex != null) {
      Object value = ConstantExpressionUtil.computeCastTo(indexExpression, PsiTypes.intType());
      if (value != null && !value.equals(myIndex)) return null;
    }
    //there is no reason to try to find more certain place because it doesn't have its own record in LineNumberTable
    return ExceptionLineRefiner.RefinerMatchResult.of(indexExpression);
  }
@Override
  ExceptionLineRefiner.RefinerMatchResult matchSpecificExceptionElement(@NotNull PsiElement e)