|  | 
| 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