From 85c6927792c535a329c8dfd3c96093472794d6dd Mon Sep 17 00:00:00 2001
From: Christian Kuhn <lolli@schwarzbu.ch>
Date: Tue, 15 Nov 2022 17:01:29 +0100
Subject: [PATCH] [TASK] Rename TreeBuilder to SysTemplateTreeBuilder

We will soon have additional TypoScript TreeBuilder
classes, for instance one related to TsConfig.
Rename the Frontend TypoScript related TreeBuilder
to SysTemplateTreeBuilder to improve namings.

Resolves: #99096
Related: #97816
Releases: main
Change-Id: I32dbd8aae87614d0a2a7d6aaa21e0f71059242a2
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/76611
Tested-by: core-ci <typo3@b13.com>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Tested-by: Oliver Klee <typo3-coding@oliverklee.de>
Tested-by: Jochen <rothjochen@gmail.com>
Reviewed-by: Jochen <rothjochen@gmail.com>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
---
 .../IncludeNode/IncludeInterface.php          |  2 +-
 .../IncludeTree/SysTemplateRepository.php     |  2 +-
 ...Builder.php => SysTemplateTreeBuilder.php} |  8 +--
 .../Utility/ExtensionManagementUtility.php    |  2 +-
 typo3/sysext/core/Configuration/Services.yaml |  2 +-
 ...est.php => SysTemplateTreeBuilderTest.php} | 58 +++++++++----------
 .../BackendConfigurationManager.php           |  4 +-
 .../TypoScriptFrontendController.php          |  4 +-
 .../Controller/CodeCompletionController.php   |  4 +-
 .../Controller/ConstantEditorController.php   |  4 +-
 .../Controller/ObjectBrowserController.php    |  4 +-
 .../Controller/TemplateAnalyzerController.php |  4 +-
 12 files changed, 48 insertions(+), 50 deletions(-)
 rename typo3/sysext/core/Classes/TypoScript/IncludeTree/{TreeBuilder.php => SysTemplateTreeBuilder.php} (99%)
 rename typo3/sysext/core/Tests/Functional/TypoScript/IncludeTree/{TreeBuilderTest.php => SysTemplateTreeBuilderTest.php} (80%)

diff --git a/typo3/sysext/core/Classes/TypoScript/IncludeTree/IncludeNode/IncludeInterface.php b/typo3/sysext/core/Classes/TypoScript/IncludeTree/IncludeNode/IncludeInterface.php
index 61f19a45ad39..eacf68412e5a 100644
--- a/typo3/sysext/core/Classes/TypoScript/IncludeTree/IncludeNode/IncludeInterface.php
+++ b/typo3/sysext/core/Classes/TypoScript/IncludeTree/IncludeNode/IncludeInterface.php
@@ -23,7 +23,7 @@ use TYPO3\CMS\Core\TypoScript\Tokenizer\Line\LineStream;
 /**
  * General interface of IncludeTree tree nodes.
  *
- * The TreeBuilder returns a tree of these nodes, with the root node being
+ * The TreeBuilder classes return a tree of these nodes, with the root node being
  * a RootInclude. Each "include type" is represented by an own class: There
  * is for instance "SysTemplateInclude" for a node that represents a sys_template
  * row, and DefaultTypoScriptInclude for the default TypoScript string included from
diff --git a/typo3/sysext/core/Classes/TypoScript/IncludeTree/SysTemplateRepository.php b/typo3/sysext/core/Classes/TypoScript/IncludeTree/SysTemplateRepository.php
index d15cab9e4ac2..49e973bd08b4 100644
--- a/typo3/sysext/core/Classes/TypoScript/IncludeTree/SysTemplateRepository.php
+++ b/typo3/sysext/core/Classes/TypoScript/IncludeTree/SysTemplateRepository.php
@@ -31,7 +31,7 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
 /**
  * Fetch relevant sys_template records from database by given page rootline.
  *
- * The result sys_template rows are fed to the TreeBuilder for processing.
+ * The result sys_template rows are fed to the SysTemplateTreeBuilder for processing.
  *
  * @internal: Internal structure. There is optimization potential and especially getSysTemplateRowsByRootline() will probably vanish later.
  */
diff --git a/typo3/sysext/core/Classes/TypoScript/IncludeTree/TreeBuilder.php b/typo3/sysext/core/Classes/TypoScript/IncludeTree/SysTemplateTreeBuilder.php
similarity index 99%
rename from typo3/sysext/core/Classes/TypoScript/IncludeTree/TreeBuilder.php
rename to typo3/sysext/core/Classes/TypoScript/IncludeTree/SysTemplateTreeBuilder.php
index d2c30ef1085e..f9041d3e35a7 100644
--- a/typo3/sysext/core/Classes/TypoScript/IncludeTree/TreeBuilder.php
+++ b/typo3/sysext/core/Classes/TypoScript/IncludeTree/SysTemplateTreeBuilder.php
@@ -68,7 +68,7 @@ use TYPO3\CMS\Core\Utility\PathUtility;
  *
  * @internal: Internal tree structure.
  */
-final class TreeBuilder
+final class SysTemplateTreeBuilder
 {
     /**
      * Used in 'basedOn' includes to prevent endless loop: Each sys_template row can
@@ -78,9 +78,7 @@ final class TreeBuilder
      */
     private array $includedSysTemplateUids = [];
 
-    /**
-     * @param 'constants'|'setup' $type
-     */
+    /** @var 'constants'|'setup' */
     private string $type;
 
     private TokenizerInterface $tokenizer;
@@ -104,7 +102,7 @@ final class TreeBuilder
         ?SiteInterface $site = null,
         PhpFrontend $cache = null
     ): RootInclude {
-        if (!in_array($type, ['constants', 'setup'])) {
+        if (!in_array($type, ['constants', 'setup'], true)) {
             throw new \RuntimeException('type must be either constants or setup', 1653737656);
         }
         $this->tokenizer = $tokenizer;
diff --git a/typo3/sysext/core/Classes/Utility/ExtensionManagementUtility.php b/typo3/sysext/core/Classes/Utility/ExtensionManagementUtility.php
index c743f4e32b41..b5b0a9a4f621 100644
--- a/typo3/sysext/core/Classes/Utility/ExtensionManagementUtility.php
+++ b/typo3/sysext/core/Classes/Utility/ExtensionManagementUtility.php
@@ -1230,7 +1230,7 @@ tt_content.' . $key . $suffix . ' {
         if ($afterStaticUid) {
             // If 'defaultContentRendering' is targeted (formerly static uid 43),
             // the content is added after TypoScript of type contentRendering, e.g. fluid_styled_content, see
-            // EXT:core/Classes/TypoScript/IncludeTree/TreeBuilder.php for more information on how the code is parsed.
+            // EXT:core/Classes/TypoScript/IncludeTree/SysTemplateTreeBuilder.php for more information on how the code is parsed.
             if ($afterStaticUid === 'defaultContentRendering' || $afterStaticUid == 43) {
                 $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_' . $type . '.']['defaultContentRendering'] ??= '';
                 $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_' . $type . '.']['defaultContentRendering'] .= $content;
diff --git a/typo3/sysext/core/Configuration/Services.yaml b/typo3/sysext/core/Configuration/Services.yaml
index 3ea885cad919..8a8fb8caebc7 100644
--- a/typo3/sysext/core/Configuration/Services.yaml
+++ b/typo3/sysext/core/Configuration/Services.yaml
@@ -312,7 +312,7 @@ services:
   TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository:
     public: true
 
-  TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder:
+  TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder:
     public: true
 
   TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor:
diff --git a/typo3/sysext/core/Tests/Functional/TypoScript/IncludeTree/TreeBuilderTest.php b/typo3/sysext/core/Tests/Functional/TypoScript/IncludeTree/SysTemplateTreeBuilderTest.php
similarity index 80%
rename from typo3/sysext/core/Tests/Functional/TypoScript/IncludeTree/TreeBuilderTest.php
rename to typo3/sysext/core/Tests/Functional/TypoScript/IncludeTree/SysTemplateTreeBuilderTest.php
index 5a1e75cf2368..82767d2fc088 100644
--- a/typo3/sysext/core/Tests/Functional/TypoScript/IncludeTree/TreeBuilderTest.php
+++ b/typo3/sysext/core/Tests/Functional/TypoScript/IncludeTree/SysTemplateTreeBuilderTest.php
@@ -23,13 +23,13 @@ use TYPO3\CMS\Core\Tests\Functional\SiteHandling\SiteBasedTestTrait;
 use TYPO3\CMS\Core\TypoScript\AST\Node\RootNode;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\RootInclude;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository;
+use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\IncludeTreeTraverser;
-use TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor;
 use TYPO3\CMS\Core\TypoScript\Tokenizer\LossyTokenizer;
 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
 
-class TreeBuilderTest extends FunctionalTestCase
+class SysTemplateTreeBuilderTest extends FunctionalTestCase
 {
     use SiteBasedTestTrait;
 
@@ -81,9 +81,9 @@ class TreeBuilderTest extends FunctionalTestCase
         ];
         /** @var SysTemplateRepository $sysTemplateRepository */
         $sysTemplateRepository = $this->get(SysTemplateRepository::class);
-        /** @var TreeBuilder $treeBuilder */
-        $treeBuilder = $this->get(TreeBuilder::class);
-        $includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
+        /** @var SysTemplateTreeBuilder $subject */
+        $subject = $this->get(SysTemplateTreeBuilder::class);
+        $includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
         self::assertEquals($includeTree, unserialize(serialize($includeTree)));
         $ast = $this->getAst($includeTree);
         self::assertSame('fooValue', $ast->getChildByName('foo')->getValue());
@@ -105,9 +105,9 @@ class TreeBuilderTest extends FunctionalTestCase
         ];
         /** @var SysTemplateRepository $sysTemplateRepository */
         $sysTemplateRepository = $this->get(SysTemplateRepository::class);
-        /** @var TreeBuilder $treeBuilder */
-        $treeBuilder = $this->get(TreeBuilder::class);
-        $includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
+        /** @var SysTemplateTreeBuilder $subject */
+        $subject = $this->get(SysTemplateTreeBuilder::class);
+        $includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
         self::assertEquals($includeTree, unserialize(serialize($includeTree)));
         $ast = $this->getAst($includeTree);
         self::assertSame('fooValue', $ast->getChildByName('foo')->getValue());
@@ -131,9 +131,9 @@ class TreeBuilderTest extends FunctionalTestCase
         $sysTemplateRepository = $this->get(SysTemplateRepository::class);
         /** @var SiteFinder $siteFinder */
         $siteFinder = $this->get(SiteFinder::class);
-        /** @var TreeBuilder $treeBuilder */
-        $treeBuilder = $this->get(TreeBuilder::class);
-        $includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite(
+        /** @var SysTemplateTreeBuilder $subject */
+        $subject = $this->get(SysTemplateTreeBuilder::class);
+        $includeTree = $subject->getTreeBySysTemplateRowsAndSite(
             'constants',
             $sysTemplateRepository->getSysTemplateRowsByRootline($rootline),
             new LossyTokenizer(),
@@ -164,9 +164,9 @@ class TreeBuilderTest extends FunctionalTestCase
         ];
         /** @var SysTemplateRepository $sysTemplateRepository */
         $sysTemplateRepository = $this->get(SysTemplateRepository::class);
-        /** @var TreeBuilder $treeBuilder */
-        $treeBuilder = $this->get(TreeBuilder::class);
-        $includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
+        /** @var SysTemplateTreeBuilder $subject */
+        $subject = $this->get(SysTemplateTreeBuilder::class);
+        $includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
         self::assertEquals($includeTree, unserialize(serialize($includeTree)));
         $ast = $this->getAst($includeTree);
         self::assertSame('fooValue', $ast->getChildByName('foo')->getValue());
@@ -193,9 +193,9 @@ class TreeBuilderTest extends FunctionalTestCase
         ];
         /** @var SysTemplateRepository $sysTemplateRepository */
         $sysTemplateRepository = $this->get(SysTemplateRepository::class);
-        /** @var TreeBuilder $treeBuilder */
-        $treeBuilder = $this->get(TreeBuilder::class);
-        $includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
+        /** @var SysTemplateTreeBuilder $subject */
+        $subject = $this->get(SysTemplateTreeBuilder::class);
+        $includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
         self::assertEquals($includeTree, unserialize(serialize($includeTree)));
         $ast = $this->getAst($includeTree);
         self::assertNull($ast->getChildByName('foo'));
@@ -217,9 +217,9 @@ class TreeBuilderTest extends FunctionalTestCase
         ];
         /** @var SysTemplateRepository $sysTemplateRepository */
         $sysTemplateRepository = $this->get(SysTemplateRepository::class);
-        /** @var TreeBuilder $treeBuilder */
-        $treeBuilder = $this->get(TreeBuilder::class);
-        $includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
+        /** @var SysTemplateTreeBuilder $subject */
+        $subject = $this->get(SysTemplateTreeBuilder::class);
+        $includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
         self::assertEquals($includeTree, unserialize(serialize($includeTree)));
         $ast = $this->getAst($includeTree);
         self::assertSame('fooValue', $ast->getChildByName('foo')->getValue());
@@ -241,9 +241,9 @@ class TreeBuilderTest extends FunctionalTestCase
         ];
         /** @var SysTemplateRepository $sysTemplateRepository */
         $sysTemplateRepository = $this->get(SysTemplateRepository::class);
-        /** @var TreeBuilder $treeBuilder */
-        $treeBuilder = $this->get(TreeBuilder::class);
-        $includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
+        /** @var SysTemplateTreeBuilder $subject */
+        $subject = $this->get(SysTemplateTreeBuilder::class);
+        $includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
         self::assertEquals($includeTree, unserialize(serialize($includeTree)));
         $ast = $this->getAst($includeTree);
         self::assertSame('fooValue', $ast->getChildByName('foo')->getValue());
@@ -265,9 +265,9 @@ class TreeBuilderTest extends FunctionalTestCase
         ];
         /** @var SysTemplateRepository $sysTemplateRepository */
         $sysTemplateRepository = $this->get(SysTemplateRepository::class);
-        /** @var TreeBuilder $treeBuilder */
-        $treeBuilder = $this->get(TreeBuilder::class);
-        $includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
+        /** @var SysTemplateTreeBuilder $subject */
+        $subject = $this->get(SysTemplateTreeBuilder::class);
+        $includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
         self::assertEquals($includeTree, unserialize(serialize($includeTree)));
         $ast = $this->getAst($includeTree);
         self::assertSame('fooValue', $ast->getChildByName('foo')->getValue());
@@ -289,9 +289,9 @@ class TreeBuilderTest extends FunctionalTestCase
         ];
         /** @var SysTemplateRepository $sysTemplateRepository */
         $sysTemplateRepository = $this->get(SysTemplateRepository::class);
-        /** @var TreeBuilder $treeBuilder */
-        $treeBuilder = $this->get(TreeBuilder::class);
-        $includeTree = $treeBuilder->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
+        /** @var SysTemplateTreeBuilder $subject */
+        $subject = $this->get(SysTemplateTreeBuilder::class);
+        $includeTree = $subject->getTreeBySysTemplateRowsAndSite('constants', $sysTemplateRepository->getSysTemplateRowsByRootline($rootline), new LossyTokenizer());
         self::assertEquals($includeTree, unserialize(serialize($includeTree)));
         $ast = $this->getAst($includeTree);
         self::assertSame('fooValue', $ast->getChildByName('foo')->getValue());
diff --git a/typo3/sysext/extbase/Classes/Configuration/BackendConfigurationManager.php b/typo3/sysext/extbase/Classes/Configuration/BackendConfigurationManager.php
index a6bcef7aa8c4..7321a3ce1543 100644
--- a/typo3/sysext/extbase/Classes/Configuration/BackendConfigurationManager.php
+++ b/typo3/sysext/extbase/Classes/Configuration/BackendConfigurationManager.php
@@ -30,8 +30,8 @@ use TYPO3\CMS\Core\Database\Query\Restriction\HiddenRestriction;
 use TYPO3\CMS\Core\SingletonInterface;
 use TYPO3\CMS\Core\Type\Bitmask\Permission;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository;
+use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\ConditionVerdictAwareIncludeTreeTraverser;
-use TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeConditionMatcherVisitor;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeSetupConditionConstantSubstitutionVisitor;
@@ -97,7 +97,7 @@ class BackendConfigurationManager implements SingletonInterface
         private readonly PhpFrontend $typoScriptCache,
         private readonly FrontendInterface $runtimeCache,
         private readonly SysTemplateRepository $sysTemplateRepository,
-        private readonly TreeBuilder $treeBuilder,
+        private readonly SysTemplateTreeBuilder $treeBuilder,
         private readonly LossyTokenizer $lossyTokenizer,
         private readonly ConditionVerdictAwareIncludeTreeTraverser $includeTreeTraverserConditionVerdictAware,
         private readonly Context $context,
diff --git a/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php b/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
index db909522636f..e591d9a909d4 100644
--- a/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
+++ b/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php
@@ -60,9 +60,9 @@ use TYPO3\CMS\Core\TypoScript\AST\Node\ChildNode;
 use TYPO3\CMS\Core\TypoScript\AST\Node\RootNode;
 use TYPO3\CMS\Core\TypoScript\FrontendTypoScript;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository;
+use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\ConditionVerdictAwareIncludeTreeTraverser;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\IncludeTreeTraverser;
-use TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeConditionIncludeListAccumulatorVisitor;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeConditionMatcherVisitor;
@@ -1191,7 +1191,7 @@ class TypoScriptFrontendController implements LoggerAwareInterface
         $this->tmpl->rootLine = $localRootline;
 
         $tokenizer = new LossyTokenizer();
-        $treeBuilder = GeneralUtility::makeInstance(TreeBuilder::class);
+        $treeBuilder = GeneralUtility::makeInstance(SysTemplateTreeBuilder::class);
         $includeTreeTraverser = new IncludeTreeTraverser();
         $includeTreeTraverserConditionVerdictAware = new ConditionVerdictAwareIncludeTreeTraverser();
         $frontendConditionMatcher = GeneralUtility::makeInstance(FrontendConditionMatcher::class, $this->context, $this->id, $this->rootLine);
diff --git a/typo3/sysext/t3editor/Classes/Controller/CodeCompletionController.php b/typo3/sysext/t3editor/Classes/Controller/CodeCompletionController.php
index c6dc6e65ffc3..5836e2b6eda6 100644
--- a/typo3/sysext/t3editor/Classes/Controller/CodeCompletionController.php
+++ b/typo3/sysext/t3editor/Classes/Controller/CodeCompletionController.php
@@ -24,8 +24,8 @@ use TYPO3\CMS\Core\Http\JsonResponse;
 use TYPO3\CMS\Core\Localization\LanguageService;
 use TYPO3\CMS\Core\Site\Entity\SiteInterface;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository;
+use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\IncludeTreeTraverser;
-use TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor;
 use TYPO3\CMS\Core\TypoScript\Tokenizer\LossyTokenizer;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
@@ -40,7 +40,7 @@ class CodeCompletionController
 {
     public function __construct(
         private readonly SysTemplateRepository $sysTemplateRepository,
-        private readonly TreeBuilder $treeBuilder,
+        private readonly SysTemplateTreeBuilder $treeBuilder,
         private readonly LossyTokenizer $lossyTokenizer,
         private readonly IncludeTreeTraverser $treeTraverser,
     ) {
diff --git a/typo3/sysext/tstemplate/Classes/Controller/ConstantEditorController.php b/typo3/sysext/tstemplate/Classes/Controller/ConstantEditorController.php
index b69b5575a3e3..e4c351a4ba12 100644
--- a/typo3/sysext/tstemplate/Classes/Controller/ConstantEditorController.php
+++ b/typo3/sysext/tstemplate/Classes/Controller/ConstantEditorController.php
@@ -31,8 +31,8 @@ use TYPO3\CMS\Core\TypoScript\AST\Node\RootNode;
 use TYPO3\CMS\Core\TypoScript\AST\Traverser\AstTraverser;
 use TYPO3\CMS\Core\TypoScript\AST\Visitor\AstConstantCommentVisitor;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository;
+use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\IncludeTreeTraverser;
-use TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder;
 use TYPO3\CMS\Core\TypoScript\Tokenizer\LosslessTokenizer;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Core\Utility\MathUtility;
@@ -48,7 +48,7 @@ class ConstantEditorController extends AbstractTemplateModuleController
     public function __construct(
         protected readonly ModuleTemplateFactory $moduleTemplateFactory,
         private readonly SysTemplateRepository $sysTemplateRepository,
-        private readonly TreeBuilder $treeBuilder,
+        private readonly SysTemplateTreeBuilder $treeBuilder,
         private readonly IncludeTreeTraverser $treeTraverser,
         private readonly AstTraverser $astTraverser,
         private readonly AstBuilderInterface $astBuilder,
diff --git a/typo3/sysext/tstemplate/Classes/Controller/ObjectBrowserController.php b/typo3/sysext/tstemplate/Classes/Controller/ObjectBrowserController.php
index 53d75d3d679a..b46710768604 100644
--- a/typo3/sysext/tstemplate/Classes/Controller/ObjectBrowserController.php
+++ b/typo3/sysext/tstemplate/Classes/Controller/ObjectBrowserController.php
@@ -35,9 +35,9 @@ use TYPO3\CMS\Core\TypoScript\AST\Traverser\AstTraverser;
 use TYPO3\CMS\Core\TypoScript\AST\Visitor\AstSortChildrenVisitor;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\RootInclude;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository;
+use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\ConditionVerdictAwareIncludeTreeTraverser;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\IncludeTreeTraverser;
-use TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeSetupConditionConstantSubstitutionVisitor;
 use TYPO3\CMS\Core\TypoScript\Tokenizer\LosslessTokenizer;
@@ -62,7 +62,7 @@ final class ObjectBrowserController extends AbstractTemplateModuleController
         private readonly SysTemplateRepository $sysTemplateRepository,
         private readonly IncludeTreeTraverser $treeTraverser,
         private readonly ConditionVerdictAwareIncludeTreeTraverser $treeTraverserConditionVerdictAware,
-        private readonly TreeBuilder $treeBuilder,
+        private readonly SysTemplateTreeBuilder $treeBuilder,
         private readonly AstTraverser $astTraverser,
         private readonly LosslessTokenizer $losslessTokenizer,
     ) {
diff --git a/typo3/sysext/tstemplate/Classes/Controller/TemplateAnalyzerController.php b/typo3/sysext/tstemplate/Classes/Controller/TemplateAnalyzerController.php
index 173d910a1034..19fea3454aed 100644
--- a/typo3/sysext/tstemplate/Classes/Controller/TemplateAnalyzerController.php
+++ b/typo3/sysext/tstemplate/Classes/Controller/TemplateAnalyzerController.php
@@ -28,9 +28,9 @@ use TYPO3\CMS\Core\Page\PageRenderer;
 use TYPO3\CMS\Core\Site\Entity\SiteInterface;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\IncludeNode\RootInclude;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateRepository;
+use TYPO3\CMS\Core\TypoScript\IncludeTree\SysTemplateTreeBuilder;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\ConditionVerdictAwareIncludeTreeTraverser;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Traverser\IncludeTreeTraverser;
-use TYPO3\CMS\Core\TypoScript\IncludeTree\TreeBuilder;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeAstBuilderVisitor;
 use TYPO3\CMS\Core\TypoScript\IncludeTree\Visitor\IncludeTreeSetupConditionConstantSubstitutionVisitor;
 use TYPO3\CMS\Core\TypoScript\Tokenizer\LosslessTokenizer;
@@ -55,7 +55,7 @@ final class TemplateAnalyzerController extends AbstractTemplateModuleController
         private readonly SysTemplateRepository $sysTemplateRepository,
         private readonly IncludeTreeTraverser $treeTraverser,
         private readonly ConditionVerdictAwareIncludeTreeTraverser $treeTraverserConditionVerdictAware,
-        private readonly TreeBuilder $treeBuilder,
+        private readonly SysTemplateTreeBuilder $treeBuilder,
         private readonly LosslessTokenizer $losslessTokenizer,
     ) {
     }
-- 
GitLab