@Override
  public void visitPyComprehensionElement(@NotNull PyComprehensionElement node) {
    node.acceptChildren(this);

    if (alreadyVisited.contains(node)) return;
    alreadyVisited.add(node);

    if (myVariantIndex == myVariantsFromPython.size() - 1) return;

    if (!PySmartStepIntoVariantComprehension.isComprehensionName(myVariantsFromPython.get(myVariantIndex + 1).first)) return;

    myVariantIndex++;
    int callOrder = getCallOrder();
    mySeenVariants.put(myVariantsFromPython.get(myVariantIndex).first, ++callOrder);

    if (isAlreadyCalled()) return;

    myCollector.add(new PySmartStepIntoVariantComprehension(node, callOrder, myContext));
  }
@Override
  public void visitPyComprehensionElement(@NotNull PyComprehensionElement node)