12
12
namespace League \Csv \Serializer ;
13
13
14
14
use DateTimeInterface ;
15
-
16
15
use ReflectionClass ;
17
16
use ReflectionNamedType ;
18
17
use ReflectionParameter ;
@@ -43,7 +42,7 @@ enum Type: string
43
42
case Array = 'array ' ;
44
43
case Iterable = 'iterable ' ;
45
44
case Enum = 'enum ' ;
46
- case Date = ' date ' ;
45
+ case Date = DateTimeInterface::class ;
47
46
48
47
public function equals (mixed $ value ): bool
49
48
{
@@ -99,14 +98,6 @@ public static function list(ReflectionParameter|ReflectionProperty $reflectionPr
99
98
$ reflectionProperty instanceof ReflectionProperty => 'The property ` ' .$ reflectionProperty ->getName ().'` must be typed. ' ,
100
99
});
101
100
102
- return self ::typeList ($ reflectionType );
103
- }
104
-
105
- /**
106
- * @return list<array{0:Type, 1: ReflectionNamedType}>
107
- */
108
- private static function typeList (ReflectionType $ reflectionType ): array
109
- {
110
101
$ foundTypes = static function (array $ res , ReflectionType $ reflectionType ) {
111
102
if (!$ reflectionType instanceof ReflectionNamedType) {
112
103
return $ res ;
@@ -120,20 +111,11 @@ private static function typeList(ReflectionType $reflectionType): array
120
111
return $ res ;
121
112
};
122
113
123
- if ($ reflectionType instanceof ReflectionNamedType) {
124
- $ type = self ::tryFromName ($ reflectionType ->getName ());
125
- if (null !== $ type ) {
126
- return [[$ type , $ reflectionType ]];
127
- }
128
-
129
- return [];
130
- }
131
-
132
- if ($ reflectionType instanceof ReflectionUnionType) {
133
- return array_reduce ($ reflectionType ->getTypes (), $ foundTypes , []);
134
- }
135
-
136
- return [];
114
+ return match (true ) {
115
+ $ reflectionType instanceof ReflectionNamedType => $ foundTypes ([], $ reflectionType ),
116
+ $ reflectionType instanceof ReflectionUnionType => array_reduce ($ reflectionType ->getTypes (), $ foundTypes , []),
117
+ default => [],
118
+ };
137
119
}
138
120
139
121
public static function tryFromReflectionType (ReflectionType $ type ): ?self
0 commit comments