@Override
  public void visitTemplateExpression(@NotNull PsiTemplateExpression expression) {
    PsiExpression processor = PsiUtil.skipParenthesizedExprDown(expression.getProcessor());
    if (processConcatTemplate(expression)) {
      return;
    }
    if (processor != null) {
      processor.accept(this);
    } else {
      pushUnknown(); // incomplete code
    }
    PsiTemplate template = expression.getTemplate();
    if (template != null) {
      for (PsiExpression embeddedExpression : template.getEmbeddedExpressions()) {
        embeddedExpression.accept(this);
        addInstruction(new PopInstruction());
      }
    }
    addInstruction(new MethodCallInstruction(expression, null, List.of()));
    if (myTrapTracker.shouldHandleException()) {
      addThrows(ExceptionUtil.getOwnUnhandledExceptions(expression));
    }
    addNullCheck(expression);
  }
@Override
  public void visitTemplateExpression(@NotNull PsiTemplateExpression expression)