|
8 | 8 | use PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprArrayItemNode;
|
9 | 9 | use PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprArrayNode;
|
10 | 10 | use PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprIntegerNode;
|
| 11 | +use PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprNewNode; |
11 | 12 | use PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprStringNode;
|
12 | 13 | use PHPStan\PhpDocParser\Ast\ConstExpr\ConstFetchNode;
|
13 | 14 | use PHPStan\PhpDocParser\Ast\ConstExpr\DoctrineConstExprStringNode;
|
@@ -2762,6 +2763,66 @@ public function provideMethodTagsData(): Iterator
|
2762 | 2763 | ),
|
2763 | 2764 | ]),
|
2764 | 2765 | ];
|
| 2766 | + |
| 2767 | + yield [ |
| 2768 | + 'OK static with parameter using new in initializer', |
| 2769 | + '/** @method static void myFunction(DateInterval $date = new DateInterval("P1Y")) */', |
| 2770 | + new PhpDocNode([ |
| 2771 | + new PhpDocTagNode( |
| 2772 | + '@method', |
| 2773 | + new MethodTagValueNode( |
| 2774 | + true, |
| 2775 | + new IdentifierTypeNode('void'), |
| 2776 | + 'myFunction', |
| 2777 | + [ |
| 2778 | + new MethodTagValueParameterNode( |
| 2779 | + new IdentifierTypeNode('DateInterval'), |
| 2780 | + false, |
| 2781 | + false, |
| 2782 | + '$date', |
| 2783 | + new ConstExprNewNode( |
| 2784 | + 'DateInterval', |
| 2785 | + [ |
| 2786 | + new ConstExprStringNode('"P1Y"'), |
| 2787 | + ] |
| 2788 | + ) |
| 2789 | + ), |
| 2790 | + ], |
| 2791 | + '' |
| 2792 | + ) |
| 2793 | + ), |
| 2794 | + ]), |
| 2795 | + ]; |
| 2796 | + |
| 2797 | + yield [ |
| 2798 | + 'OK static with parameter using new in initializer with nested new', |
| 2799 | + '/** @method static void myFunction(SomeClass $object = new SomeClass(new SomeClass)) */', |
| 2800 | + new PhpDocNode([ |
| 2801 | + new PhpDocTagNode( |
| 2802 | + '@method', |
| 2803 | + new MethodTagValueNode( |
| 2804 | + true, |
| 2805 | + new IdentifierTypeNode('void'), |
| 2806 | + 'myFunction', |
| 2807 | + [ |
| 2808 | + new MethodTagValueParameterNode( |
| 2809 | + new IdentifierTypeNode('SomeClass'), |
| 2810 | + false, |
| 2811 | + false, |
| 2812 | + '$object', |
| 2813 | + new ConstExprNewNode( |
| 2814 | + 'SomeClass', |
| 2815 | + [ |
| 2816 | + new ConstExprNewNode('SomeClass', []), |
| 2817 | + ] |
| 2818 | + ) |
| 2819 | + ), |
| 2820 | + ], |
| 2821 | + '' |
| 2822 | + ) |
| 2823 | + ), |
| 2824 | + ]), |
| 2825 | + ]; |
2765 | 2826 | }
|
2766 | 2827 |
|
2767 | 2828 |
|
|
0 commit comments