3
3
namespace PHPStan \PhpDocParser \Parser ;
4
4
5
5
use PHPStan \PhpDocParser \Ast \ConstExpr \ConstExprIntegerNode ;
6
- use PHPStan \PhpDocParser \Ast \ConstExpr \ConstExprStringNode ;
7
6
use PHPStan \PhpDocParser \Ast \Type \ArrayShapeItemNode ;
8
7
use PHPStan \PhpDocParser \Ast \Type \ArrayShapeNode ;
9
8
use PHPStan \PhpDocParser \Ast \Type \ArrayTypeNode ;
@@ -280,20 +279,20 @@ public function provideParseData(): array
280
279
],
281
280
282
281
[
283
- 'array{ \' a \' : int} ' ,
282
+ 'array{a : int} ' ,
284
283
new ArrayShapeNode ([
285
284
new ArrayShapeItemNode (
286
- new ConstExprStringNode ( '\' a \' ' ),
285
+ new IdentifierTypeNode ( ' a ' ),
287
286
false ,
288
287
new IdentifierTypeNode ('int ' )
289
288
),
290
289
]),
291
290
],
292
291
[
293
- 'array{ \' a \' : ?int} ' ,
292
+ 'array{a : ?int} ' ,
294
293
new ArrayShapeNode ([
295
294
new ArrayShapeItemNode (
296
- new ConstExprStringNode ( '\' a \' ' ),
295
+ new IdentifierTypeNode ( ' a ' ),
297
296
false ,
298
297
new NullableTypeNode (
299
298
new IdentifierTypeNode ('int ' )
@@ -302,10 +301,10 @@ public function provideParseData(): array
302
301
]),
303
302
],
304
303
[
305
- 'array{ \' a \' ?: ?int} ' ,
304
+ 'array{a ?: ?int} ' ,
306
305
new ArrayShapeNode ([
307
306
new ArrayShapeItemNode (
308
- new ConstExprStringNode ( '\' a \' ' ),
307
+ new IdentifierTypeNode ( ' a ' ),
309
308
true ,
310
309
new NullableTypeNode (
311
310
new IdentifierTypeNode ('int ' )
@@ -314,22 +313,27 @@ public function provideParseData(): array
314
313
]),
315
314
],
316
315
[
317
- 'array{ \' a \' : int, \' b \' : string } ' ,
316
+ 'array{0 : int} ' ,
318
317
new ArrayShapeNode ([
319
318
new ArrayShapeItemNode (
320
- new ConstExprStringNode ( '\' a \' ' ),
319
+ new ConstExprIntegerNode ( ' 0 ' ),
321
320
false ,
322
321
new IdentifierTypeNode ('int ' )
323
322
),
323
+ ]),
324
+ ],
325
+ [
326
+ 'array{0?: int} ' ,
327
+ new ArrayShapeNode ([
324
328
new ArrayShapeItemNode (
325
- new ConstExprStringNode ( '\' b \' ' ),
326
- false ,
327
- new IdentifierTypeNode ('string ' )
329
+ new ConstExprIntegerNode ( ' 0 ' ),
330
+ true ,
331
+ new IdentifierTypeNode ('int ' )
328
332
),
329
333
]),
330
334
],
331
335
[
332
- 'array{int, string, "a": string } ' ,
336
+ 'array{int, int } ' ,
333
337
new ArrayShapeNode ([
334
338
new ArrayShapeItemNode (
335
339
null ,
@@ -339,25 +343,35 @@ public function provideParseData(): array
339
343
new ArrayShapeItemNode (
340
344
null ,
341
345
false ,
342
- new IdentifierTypeNode ('string ' )
346
+ new IdentifierTypeNode ('int ' )
347
+ ),
348
+ ]),
349
+ ],
350
+ [
351
+ 'array{a: int, b: string} ' ,
352
+ new ArrayShapeNode ([
353
+ new ArrayShapeItemNode (
354
+ new IdentifierTypeNode ('a ' ),
355
+ false ,
356
+ new IdentifierTypeNode ('int ' )
343
357
),
344
358
new ArrayShapeItemNode (
345
- new ConstExprStringNode ( ' "a" ' ),
359
+ new IdentifierTypeNode ( ' b ' ),
346
360
false ,
347
361
new IdentifierTypeNode ('string ' )
348
362
),
349
363
]),
350
364
],
351
365
[
352
- 'array{"a" ?: int, \' b \' : string, 0: int, 1?: DateTime, hello: string} ' ,
366
+ 'array{a ?: int, b : string, 0: int, 1?: DateTime, hello: string} ' ,
353
367
new ArrayShapeNode ([
354
368
new ArrayShapeItemNode (
355
- new ConstExprStringNode ( ' "a" ' ),
369
+ new IdentifierTypeNode ( ' a ' ),
356
370
true ,
357
371
new IdentifierTypeNode ('int ' )
358
372
),
359
373
new ArrayShapeItemNode (
360
- new ConstExprStringNode ( '\' b \' ' ),
374
+ new IdentifierTypeNode ( ' b ' ),
361
375
false ,
362
376
new IdentifierTypeNode ('string ' )
363
377
),
@@ -379,19 +393,19 @@ public function provideParseData(): array
379
393
]),
380
394
],
381
395
[
382
- 'array{ \' a \' : int, \' b \' : array{ \' c \' : callable(): int}} ' ,
396
+ 'array{a : int, b : array{c : callable(): int}} ' ,
383
397
new ArrayShapeNode ([
384
398
new ArrayShapeItemNode (
385
- new ConstExprStringNode ( '\' a \' ' ),
399
+ new IdentifierTypeNode ( ' a ' ),
386
400
false ,
387
401
new IdentifierTypeNode ('int ' )
388
402
),
389
403
new ArrayShapeItemNode (
390
- new ConstExprStringNode ( '\' b \' ' ),
404
+ new IdentifierTypeNode ( ' b ' ),
391
405
false ,
392
406
new ArrayShapeNode ([
393
407
new ArrayShapeItemNode (
394
- new ConstExprStringNode ( '\' c \' ' ),
408
+ new IdentifierTypeNode ( ' c ' ),
395
409
false ,
396
410
new CallableTypeNode (
397
411
new IdentifierTypeNode ('callable ' ),
@@ -404,11 +418,11 @@ public function provideParseData(): array
404
418
]),
405
419
],
406
420
[
407
- '?array{ \' a \' : int} ' ,
421
+ '?array{a : int} ' ,
408
422
new NullableTypeNode (
409
423
new ArrayShapeNode ([
410
424
new ArrayShapeItemNode (
411
- new ConstExprStringNode ( '\' a \' ' ),
425
+ new IdentifierTypeNode ( ' a ' ),
412
426
false ,
413
427
new IdentifierTypeNode ('int ' )
414
428
),
@@ -509,13 +523,13 @@ public function provideParseData(): array
509
523
),
510
524
],
511
525
[
512
- 'callable(): array{ \' a \' : int} ' ,
526
+ 'callable(): array{a : int} ' ,
513
527
new CallableTypeNode (
514
528
new IdentifierTypeNode ('callable ' ),
515
529
[],
516
530
new ArrayShapeNode ([
517
531
new ArrayShapeItemNode (
518
- new ConstExprStringNode ( '\' a \' ' ),
532
+ new IdentifierTypeNode ( ' a ' ),
519
533
false ,
520
534
new IdentifierTypeNode ('int ' )
521
535
),
0 commit comments