@@ -133,19 +133,7 @@ function processStubFile(string $stubFile, Context $context, bool $includeOnly =
133133 }
134134
135135 if ($ fileInfo ->shouldGenerateLegacyArginfo ()) {
136- $ legacyFileInfo = clone $ fileInfo ;
137- $ legacyFileInfo ->legacyArginfoGeneration = true ;
138- $ phpVersionIdMinimumCompatibility = $ legacyFileInfo ->getMinimumPhpVersionIdCompatibility ();
139-
140- foreach ($ legacyFileInfo ->getAllFuncInfos () as $ funcInfo ) {
141- $ funcInfo ->discardInfoForOldPhpVersions ($ phpVersionIdMinimumCompatibility );
142- }
143- foreach ($ legacyFileInfo ->getAllClassInfos () as $ classInfo ) {
144- $ classInfo ->discardInfoForOldPhpVersions ($ phpVersionIdMinimumCompatibility );
145- }
146- foreach ($ legacyFileInfo ->getAllConstInfos () as $ constInfo ) {
147- $ constInfo ->discardInfoForOldPhpVersions ($ phpVersionIdMinimumCompatibility );
148- }
136+ $ legacyFileInfo = $ fileInfo ->getLegacyVersion ();
149137
150138 $ arginfoCode = generateArgInfoCode (
151139 basename ($ stubFilenameWithoutExtension ),
@@ -4199,7 +4187,7 @@ class FileInfo {
41994187 public string $ declarationPrefix = "" ;
42004188 public bool $ generateClassEntries = false ;
42014189 public bool $ isUndocumentable = false ;
4202- public bool $ legacyArginfoGeneration = false ;
4190+ private bool $ legacyArginfoGeneration = false ;
42034191 private ?int $ minimumPhpVersionIdCompatibility = null ;
42044192
42054193 /** @param array<int, DocCommentTag> $fileTags */
@@ -4259,15 +4247,6 @@ public function getAllConstInfos(): array {
42594247 return $ result ;
42604248 }
42614249
4262- /**
4263- * @return iterable<ClassInfo>
4264- */
4265- public function getAllClassInfos (): iterable {
4266- foreach ($ this ->classInfos as $ classInfo ) {
4267- yield $ classInfo ;
4268- }
4269- }
4270-
42714250 public function __clone ()
42724251 {
42734252 foreach ($ this ->constInfos as $ key => $ constInfo ) {
@@ -4299,6 +4278,23 @@ public function shouldGenerateLegacyArginfo(): bool {
42994278 return $ this ->minimumPhpVersionIdCompatibility !== null && $ this ->minimumPhpVersionIdCompatibility < PHP_80_VERSION_ID ;
43004279 }
43014280
4281+ public function getLegacyVersion (): FileInfo {
4282+ $ legacyFileInfo = clone $ this ;
4283+ $ legacyFileInfo ->legacyArginfoGeneration = true ;
4284+ $ phpVersionIdMinimumCompatibility = $ legacyFileInfo ->getMinimumPhpVersionIdCompatibility ();
4285+
4286+ foreach ($ legacyFileInfo ->getAllFuncInfos () as $ funcInfo ) {
4287+ $ funcInfo ->discardInfoForOldPhpVersions ($ phpVersionIdMinimumCompatibility );
4288+ }
4289+ foreach ($ legacyFileInfo ->classInfos as $ classInfo ) {
4290+ $ classInfo ->discardInfoForOldPhpVersions ($ phpVersionIdMinimumCompatibility );
4291+ }
4292+ foreach ($ legacyFileInfo ->getAllConstInfos () as $ constInfo ) {
4293+ $ constInfo ->discardInfoForOldPhpVersions ($ phpVersionIdMinimumCompatibility );
4294+ }
4295+ return $ legacyFileInfo ;
4296+ }
4297+
43024298 public function handleStatements (array $ stmts , PrettyPrinterAbstract $ prettyPrinter ): void {
43034299 $ conds = [];
43044300 foreach ($ stmts as $ stmt ) {
0 commit comments