@@ -566,11 +566,23 @@ private function validateAndDenormalizeLegacy(array $types, string $currentClass
566
566
return (float ) $ data ;
567
567
}
568
568
569
- if ((LegacyType::BUILTIN_TYPE_FALSE === $ builtinType && false === $ data ) || (LegacyType::BUILTIN_TYPE_TRUE === $ builtinType && true === $ data )) {
570
- return $ data ;
571
- }
572
-
573
- if (('is_ ' .$ builtinType )($ data )) {
569
+ $ dataMatchesExpectedType = match ($ builtinType ) {
570
+ LegacyType::BUILTIN_TYPE_ARRAY => is_array ($ data ),
571
+ LegacyType::BUILTIN_TYPE_BOOL => is_bool ($ data ),
572
+ LegacyType::BUILTIN_TYPE_CALLABLE => is_callable ($ data ),
573
+ LegacyType::BUILTIN_TYPE_FALSE => false === $ data ,
574
+ LegacyType::BUILTIN_TYPE_FLOAT => is_float ($ data ),
575
+ LegacyType::BUILTIN_TYPE_INT => is_int ($ data ),
576
+ LegacyType::BUILTIN_TYPE_ITERABLE => is_iterable ($ data ),
577
+ LegacyType::BUILTIN_TYPE_NULL => null === $ data ,
578
+ LegacyType::BUILTIN_TYPE_OBJECT => is_object ($ data ),
579
+ LegacyType::BUILTIN_TYPE_RESOURCE => $ data ,
580
+ LegacyType::BUILTIN_TYPE_STRING => is_string ($ data ),
581
+ LegacyType::BUILTIN_TYPE_TRUE => true === $ data ,
582
+ default => false ,
583
+ };
584
+
585
+ if ($ dataMatchesExpectedType ) {
574
586
return $ data ;
575
587
}
576
588
} catch (NotNormalizableValueException |InvalidArgumentException $ e ) {
@@ -773,11 +785,23 @@ private function validateAndDenormalize(Type $type, string $currentClass, string
773
785
return (float ) $ data ;
774
786
}
775
787
776
- if ((TypeIdentifier::FALSE === $ typeIdentifier && false === $ data ) || (TypeIdentifier::TRUE === $ typeIdentifier && true === $ data )) {
777
- return $ data ;
778
- }
779
-
780
- if (('is_ ' .$ typeIdentifier ->value )($ data )) {
788
+ $ dataMatchesExpectedType = match ($ typeIdentifier ) {
789
+ TypeIdentifier::ARRAY => is_array ($ data ),
790
+ TypeIdentifier::BOOL => is_bool ($ data ),
791
+ TypeIdentifier::CALLABLE => is_callable ($ data ),
792
+ TypeIdentifier::FALSE => false === $ data ,
793
+ TypeIdentifier::FLOAT => is_float ($ data ),
794
+ TypeIdentifier::INT => is_int ($ data ),
795
+ TypeIdentifier::ITERABLE => is_iterable ($ data ),
796
+ TypeIdentifier::NULL => null === $ data ,
797
+ TypeIdentifier::OBJECT => is_object ($ data ),
798
+ TypeIdentifier::RESOURCE => $ data ,
799
+ TypeIdentifier::STRING => is_string ($ data ),
800
+ TypeIdentifier::TRUE => true === $ data ,
801
+ default => false ,
802
+ };
803
+
804
+ if ($ dataMatchesExpectedType ) {
781
805
return $ data ;
782
806
}
783
807
} catch (NotNormalizableValueException |InvalidArgumentException $ e ) {
0 commit comments