@@ -71,14 +71,16 @@ function processStubFile(string $stubFile, Context $context): ?FileInfo {
71
71
}
72
72
73
73
if ($ fileInfo ->generateLegacyArginfo ) {
74
- foreach ($ fileInfo ->getAllFuncInfos () as $ funcInfo ) {
74
+ $ legacyFileInfo = clone $ fileInfo ;
75
+
76
+ foreach ($ legacyFileInfo ->getAllFuncInfos () as $ funcInfo ) {
75
77
$ funcInfo ->discardInfoForOldPhpVersions ();
76
78
}
77
- foreach ($ fileInfo ->getAllPropertyInfos () as $ propertyInfo ) {
79
+ foreach ($ legacyFileInfo ->getAllPropertyInfos () as $ propertyInfo ) {
78
80
$ propertyInfo ->discardInfoForOldPhpVersions ();
79
81
}
80
82
81
- $ arginfoCode = generateArgInfoCode ($ fileInfo , $ stubHash );
83
+ $ arginfoCode = generateArgInfoCode ($ legacyFileInfo , $ stubHash );
82
84
if (($ context ->forceRegeneration || $ stubHash !== $ oldStubHash ) && file_put_contents ($ legacyFile , $ arginfoCode )) {
83
85
echo "Saved $ legacyFile \n" ;
84
86
}
@@ -1324,6 +1326,14 @@ public function getMethodSynopsisElement(array $funcMap, array $aliasMap, DOMDoc
1324
1326
1325
1327
return $ methodSynopsis ;
1326
1328
}
1329
+
1330
+ public function __clone ()
1331
+ {
1332
+ foreach ($ this ->args as $ key => $ argInfo ) {
1333
+ $ this ->args [$ key ] = clone $ argInfo ;
1334
+ }
1335
+ $ this ->return = clone $ this ->return ;
1336
+ }
1327
1337
}
1328
1338
1329
1339
function initializeZval (string $ zvalName , $ value ): string
@@ -1555,6 +1565,13 @@ function (Expr $expr) use (&$defaultValueConstant) {
1555
1565
1556
1566
return $ evaluator ->evaluateDirectly ($ this ->defaultValue );
1557
1567
}
1568
+
1569
+ public function __clone ()
1570
+ {
1571
+ if ($ this ->type ) {
1572
+ $ this ->type = clone $ this ->type ;
1573
+ }
1574
+ }
1558
1575
}
1559
1576
1560
1577
class EnumCaseInfo {
@@ -2045,6 +2062,17 @@ private function createIncludeElement(DOMDocument $doc, string $query): DOMEleme
2045
2062
2046
2063
return $ includeElement ;
2047
2064
}
2065
+
2066
+ public function __clone ()
2067
+ {
2068
+ foreach ($ this ->propertyInfos as $ key => $ propertyInfo ) {
2069
+ $ this ->propertyInfos [$ key ] = clone $ propertyInfo ;
2070
+ }
2071
+
2072
+ foreach ($ this ->funcInfos as $ key => $ funcInfo ) {
2073
+ $ this ->funcInfos [$ key ] = clone $ funcInfo ;
2074
+ }
2075
+ }
2048
2076
}
2049
2077
2050
2078
class FileInfo {
@@ -2079,6 +2107,17 @@ public function getAllPropertyInfos(): iterable {
2079
2107
yield from $ classInfo ->propertyInfos ;
2080
2108
}
2081
2109
}
2110
+
2111
+ public function __clone ()
2112
+ {
2113
+ foreach ($ this ->funcInfos as $ key => $ funcInfo ) {
2114
+ $ this ->funcInfos [$ key ] = clone $ funcInfo ;
2115
+ }
2116
+
2117
+ foreach ($ this ->classInfos as $ key => $ classInfo ) {
2118
+ $ this ->classInfos [$ key ] = clone $ classInfo ;
2119
+ }
2120
+ }
2082
2121
}
2083
2122
2084
2123
class DocCommentTag {
0 commit comments