@Override
  protected void addTemplateVariables(@NotNull PsiElement element, @NotNull Template template) {
    super.addTemplateVariables(element, template);
    MacroCallNode index = new MacroCallNode(new SuggestVariableNameMacro());
    template.addVariable("index", index, index, true);

    PsiExpression expr = (PsiExpression)element;
    DumbService.getInstance(element.getProject()).withAlternativeResolveEnabled(() -> {
      String bound = getExpressionBound(expr);
      if (bound != null) {
        template.addVariable("bound", new TextExpression(bound), false);
        template.addVariable("type", new TextExpression(suggestIndexType(expr)), false);
      }
    });
  }
@Override
  protected void addTemplateVariables(@NotNull PsiElement element, @NotNull Template template)