@@ -1230,15 +1230,15 @@ public function getEnumCases(): array
1230
1230
$ className = $ classReflection ->getName ();
1231
1231
1232
1232
if ($ this ->subtractedType !== null ) {
1233
- $ subtracedEnumCaseNames = [];
1233
+ $ subtractedEnumCaseNames = [];
1234
1234
1235
1235
foreach ($ this ->subtractedType ->getEnumCases () as $ subtractedCase ) {
1236
- $ subtracedEnumCaseNames [$ subtractedCase ->getEnumCaseName ()] = true ;
1236
+ $ subtractedEnumCaseNames [$ subtractedCase ->getEnumCaseName ()] = true ;
1237
1237
}
1238
1238
1239
1239
$ cases = [];
1240
1240
foreach ($ classReflection ->getEnumCases () as $ enumCase ) {
1241
- if (array_key_exists ($ enumCase ->getName (), $ subtracedEnumCaseNames )) {
1241
+ if (array_key_exists ($ enumCase ->getName (), $ subtractedEnumCaseNames )) {
1242
1242
continue ;
1243
1243
}
1244
1244
$ cases [] = new EnumCaseObjectType ($ className , $ enumCase ->getName (), $ classReflection );
@@ -1371,27 +1371,20 @@ public function changeSubtractedType(?Type $subtractedType): Type
1371
1371
{
1372
1372
if ($ subtractedType !== null ) {
1373
1373
$ classReflection = $ this ->getClassReflection ();
1374
- $ allowedSubTypesList = $ classReflection !== null ? $ classReflection ->getAllowedSubTypes () : null ;
1375
- if ($ allowedSubTypesList !== null ) {
1376
- $ allowedSubTypes = [];
1377
- foreach ($ allowedSubTypesList as $ allowedSubType ) {
1378
- $ allowedSubTypes [$ allowedSubType ->describe (VerbosityLevel::precise ())] = $ allowedSubType ;
1379
- }
1374
+ $ allowedSubTypes = $ classReflection !== null ? $ classReflection ->getAllowedSubTypes () : null ;
1375
+ if ($ allowedSubTypes !== null ) {
1376
+ $ preciseVerbosity = VerbosityLevel::precise ();
1380
1377
1381
1378
$ originalAllowedSubTypes = $ allowedSubTypes ;
1382
1379
$ subtractedSubTypes = [];
1383
1380
1384
- $ subtractedTypesList = TypeUtils::flattenTypes ($ subtractedType );
1385
- $ subtractedTypes = [];
1386
- foreach ($ subtractedTypesList as $ type ) {
1387
- $ subtractedTypes [$ type ->describe (VerbosityLevel::precise ())] = $ type ;
1388
- }
1389
-
1381
+ $ subtractedTypes = TypeUtils::flattenTypes ($ subtractedType );
1390
1382
foreach ($ subtractedTypes as $ subType ) {
1391
- foreach ($ allowedSubTypes as $ description => $ allowedSubType ) {
1383
+ foreach ($ allowedSubTypes as $ key => $ allowedSubType ) {
1392
1384
if ($ subType ->equals ($ allowedSubType )) {
1385
+ $ description = $ allowedSubType ->describe ($ preciseVerbosity );
1393
1386
$ subtractedSubTypes [$ description ] = $ subType ;
1394
- unset($ allowedSubTypes [$ description ]);
1387
+ unset($ allowedSubTypes [$ key ]);
1395
1388
continue 2 ;
1396
1389
}
1397
1390
}
0 commit comments