@Override
            public void visitElement(@NotNull PsiElement element) {
              if (element instanceof PsiIdentifier) {
                int offset = element.getTextRange().getStartOffset();
                PsiExpression minExpression = PsiTreeUtil.getParentOfType(element, PsiExpression.class);
                if (minExpression != null && minExpression.getTextRange().getStartOffset() == offset) {
                  PsiExpression maxExpression = minExpression;
                  while (true) {
                    PsiExpression nextExpression = PsiTreeUtil.getParentOfType(maxExpression, PsiExpression.class, true);
                    if (nextExpression == null || nextExpression.getTextRange().getStartOffset() != offset) break;
                    maxExpression = nextExpression;
                  }
                  collectExpressionData(minExpression, maxExpression, topLevelData, subData);
                }
              }

              super.visitElement(element);
            }
@Override
            public void visitElement(@NotNull PsiElement element)