@@ -48,45 +48,45 @@ var_dump($type);
4848Expected Output:
4949
5050``` php
51- TypeLang\Parser\Node\Stmt\NamedTypeNode {#739
51+ TypeLang\Parser\Node\Stmt\NamedTypeNode {
5252 +offset: 0
53- +name: TypeLang\Parser\Node\Name {#737
53+ +name: TypeLang\Parser\Node\Name {
5454 +offset: 0
5555 -parts: array:1 [
56- 0 => TypeLang\Parser\Node\Identifier {#746
56+ 0 => TypeLang\Parser\Node\Identifier {
5757 +offset: 0
5858 +value: "array"
5959 }
6060 ]
6161 }
6262 +arguments: null
63- +fields: TypeLang\Parser\Node\Stmt\Shape\FieldsListNode {#757
63+ +fields: TypeLang\Parser\Node\Stmt\Shape\FieldsListNode {
6464 +offset: 11
6565 +items: array:1 [
66- 0 => TypeLang\Parser\Node\Stmt\Shape\NamedFieldNode {#346
66+ 0 => TypeLang\Parser\Node\Stmt\Shape\NamedFieldNode {
6767 +offset: 11
68- +type: TypeLang\Parser\Node\Stmt\CallableTypeNode {#339
68+ +type: TypeLang\Parser\Node\Stmt\CallableTypeNode {
6969 +offset: 16
70- +name: TypeLang\Parser\Node\Name {#313
70+ +name: TypeLang\Parser\Node\Name {
7171 +offset: 16
7272 -parts: array:1 [
73- 0 => TypeLang\Parser\Node\Identifier {#332
73+ 0 => TypeLang\Parser\Node\Identifier {
7474 +offset: 16
7575 +value: "callable"
7676 }
7777 ]
7878 }
79- +parameters: TypeLang\Parser\Node\Stmt\Callable\ParametersListNode {#318
79+ +parameters: TypeLang\Parser\Node\Stmt\Callable\ParametersListNode {
8080 +offset: 25
8181 +items: array:2 [
82- 0 => TypeLang\Parser\Node\Stmt\Callable\ParameterNode {#315
82+ 0 => TypeLang\Parser\Node\Stmt\Callable\ParameterNode {
8383 +offset: 25
84- +type: TypeLang\Parser\Node\Stmt\NamedTypeNode {#304
84+ +type: TypeLang\Parser\Node\Stmt\NamedTypeNode {
8585 +offset: 25
86- +name: TypeLang\Parser\Node\Name {#242
86+ +name: TypeLang\Parser\Node\Name {
8787 +offset: 25
8888 -parts: array:1 [
89- 0 => TypeLang\Parser\Node\Identifier {#311
89+ 0 => TypeLang\Parser\Node\Identifier {
9090 +offset: 25
9191 +value: "Example"
9292 }
@@ -100,14 +100,14 @@ TypeLang\Parser\Node\Stmt\NamedTypeNode {#739
100100 +variadic: false
101101 +optional: false
102102 }
103- 1 => TypeLang\Parser\Node\Stmt\Callable\ParameterNode {#330
103+ 1 => TypeLang\Parser\Node\Stmt\Callable\ParameterNode {
104104 +offset: 34
105- +type: TypeLang\Parser\Node\Stmt\NamedTypeNode {#312
105+ +type: TypeLang\Parser\Node\Stmt\NamedTypeNode {
106106 +offset: 34
107- +name: TypeLang\Parser\Node\Name {#284
107+ +name: TypeLang\Parser\Node\Name {
108108 +offset: 34
109109 -parts: array:1 [
110- 0 => TypeLang\Parser\Node\Identifier {#298
110+ 0 => TypeLang\Parser\Node\Identifier {
111111 +offset: 34
112112 +value: "int"
113113 }
@@ -123,12 +123,12 @@ TypeLang\Parser\Node\Stmt\NamedTypeNode {#739
123123 }
124124 ]
125125 }
126- +type: TypeLang\Parser\Node\Stmt\NamedTypeNode {#287
126+ +type: TypeLang\Parser\Node\Stmt\NamedTypeNode {
127127 +offset: 40
128- +name: TypeLang\Parser\Node\Name {#314
128+ +name: TypeLang\Parser\Node\Name {
129129 +offset: 40
130130 -parts: array:1 [
131- 0 => TypeLang\Parser\Node\Identifier {#307
131+ 0 => TypeLang\Parser\Node\Identifier {
132132 +offset: 40
133133 +value: "mixed"
134134 }
@@ -139,7 +139,7 @@ TypeLang\Parser\Node\Stmt\NamedTypeNode {#739
139139 }
140140 }
141141 +optional: false
142- +key: TypeLang\Parser\Node\Identifier {#371
142+ +key: TypeLang\Parser\Node\Identifier {
143143 +offset: 11
144144 +value: "key"
145145 }
@@ -150,81 +150,6 @@ TypeLang\Parser\Node\Stmt\NamedTypeNode {#739
150150}
151151```
152152
153- ### Array Normalization
154-
155- ``` php
156- $parser = new \TypeLang\Parser\Parser();
157-
158- $type = $parser->parse(<<<'PHP'
159- array{
160- key: callable(Example, int): mixed,
161- ...
162- }
163- PHP);
164-
165- var_dump($type->toArray());
166- ```
167-
168- Expected Output:
169-
170- ``` php
171- array:3 [
172- "kind" => TypeLang\Parser\Node\Stmt\TypeKind {#773
173- +name: "TYPE_KIND"
174- +value: 1
175- }
176- "name" => "array"
177- "fields" => array:2 [
178- "items" => array:1 [
179- 0 => array:4 [
180- "kind" => TypeLang\Parser\Node\Stmt\Shape\ShapeFieldKind {#733
181- +name: "NAMED_FIELD_KIND"
182- +value: 1
183- }
184- "type" => array:4 [
185- "kind" => TypeLang\Parser\Node\Stmt\TypeKind {#741
186- +name: "CALLABLE_KIND"
187- +value: 2
188- }
189- "name" => "callable"
190- "parameters" => array:1 [
191- "items" => array:2 [
192- 0 => array:5 [
193- "name" => null
194- "type" => array:2 [
195- "kind" => TypeLang\Parser\Node\Stmt\TypeKind {#773}
196- "name" => "Example"
197- ]
198- "output" => false
199- "variadic" => false
200- "optional" => false
201- ]
202- 1 => array:5 [
203- "name" => null
204- "type" => array:2 [
205- "kind" => TypeLang\Parser\Node\Stmt\TypeKind {#773}
206- "name" => "int"
207- ]
208- "output" => false
209- "variadic" => false
210- "optional" => false
211- ]
212- ]
213- ]
214- "type" => array:2 [
215- "kind" => TypeLang\Parser\Node\Stmt\TypeKind {#773}
216- "name" => "mixed"
217- ]
218- ]
219- "optional" => false
220- "key" => "key"
221- ]
222- ]
223- "sealed" => false
224- ]
225- ]
226- ```
227-
228153### JSON Serialization
229154
230155
@@ -238,38 +163,36 @@ $type = $parser->parse(<<<'PHP'
238163 }
239164 PHP);
240165
241- echo json_encode($type);
166+ echo json_encode($type, JSON_PRETTY_PRINT );
242167```
243168
244169Expected Output:
245170
246171``` json
247172{
248- "kind" : 1 ,
173+ "kind" : 257 ,
249174 "name" : " array" ,
250175 "fields" : {
251176 "items" : [
252177 {
253- "kind" : 1 ,
178+ "kind" : 513 ,
254179 "type" : {
255- "kind" : 2 ,
180+ "kind" : 258 ,
256181 "name" : " callable" ,
257182 "parameters" : {
258183 "items" : [
259184 {
260- "name" : null ,
261185 "type" : {
262- "kind" : 1 ,
186+ "kind" : 257 ,
263187 "name" : " Example"
264188 },
265189 "output" : false ,
266190 "variadic" : false ,
267191 "optional" : false
268192 },
269193 {
270- "name" : null ,
271194 "type" : {
272- "kind" : 1 ,
195+ "kind" : 257 ,
273196 "name" : " int"
274197 },
275198 "output" : false ,
@@ -279,7 +202,7 @@ Expected Output:
279202 ]
280203 },
281204 "type" : {
282- "kind" : 1 ,
205+ "kind" : 257 ,
283206 "name" : " mixed"
284207 }
285208 },
0 commit comments