|
29 | 29 | use PHPStan\PhpDocParser\Ast\PhpDoc\MethodTagValueNode;
|
30 | 30 | use PHPStan\PhpDocParser\Ast\PhpDoc\MethodTagValueParameterNode;
|
31 | 31 | use PHPStan\PhpDocParser\Ast\PhpDoc\MixinTagValueNode;
|
| 32 | +use PHPStan\PhpDocParser\Ast\PhpDoc\ParamClosureThisTagValueNode; |
32 | 33 | use PHPStan\PhpDocParser\Ast\PhpDoc\ParamImmediatelyInvokedCallableTagValueNode;
|
33 | 34 | use PHPStan\PhpDocParser\Ast\PhpDoc\ParamLaterInvokedCallableTagValueNode;
|
34 | 35 | use PHPStan\PhpDocParser\Ast\PhpDoc\ParamOutTagValueNode;
|
@@ -102,6 +103,7 @@ protected function setUp(): void
|
102 | 103 | * @dataProvider provideParamImmediatelyInvokedCallableTagsData
|
103 | 104 | * @dataProvider provideParamLaterInvokedCallableTagsData
|
104 | 105 | * @dataProvider provideTypelessParamTagsData
|
| 106 | + * @dataProvider provideParamClosureThisTagsData |
105 | 107 | * @dataProvider provideVarTagsData
|
106 | 108 | * @dataProvider provideReturnTagsData
|
107 | 109 | * @dataProvider provideThrowsTagsData
|
@@ -686,6 +688,54 @@ public function provideParamLaterInvokedCallableTagsData(): Iterator
|
686 | 688 | ];
|
687 | 689 | }
|
688 | 690 |
|
| 691 | + public function provideParamClosureThisTagsData(): Iterator |
| 692 | + { |
| 693 | + yield [ |
| 694 | + 'OK', |
| 695 | + '/** @param-closure-this Foo $a */', |
| 696 | + new PhpDocNode([ |
| 697 | + new PhpDocTagNode( |
| 698 | + '@param-closure-this', |
| 699 | + new ParamClosureThisTagValueNode( |
| 700 | + new IdentifierTypeNode('Foo'), |
| 701 | + '$a', |
| 702 | + '' |
| 703 | + ) |
| 704 | + ), |
| 705 | + ]), |
| 706 | + ]; |
| 707 | + |
| 708 | + yield [ |
| 709 | + 'OK with prefix', |
| 710 | + '/** @phpstan-param-closure-this Foo $a */', |
| 711 | + new PhpDocNode([ |
| 712 | + new PhpDocTagNode( |
| 713 | + '@phpstan-param-closure-this', |
| 714 | + new ParamClosureThisTagValueNode( |
| 715 | + new IdentifierTypeNode('Foo'), |
| 716 | + '$a', |
| 717 | + '' |
| 718 | + ) |
| 719 | + ), |
| 720 | + ]), |
| 721 | + ]; |
| 722 | + |
| 723 | + yield [ |
| 724 | + 'OK with description', |
| 725 | + '/** @param-closure-this Foo $a test */', |
| 726 | + new PhpDocNode([ |
| 727 | + new PhpDocTagNode( |
| 728 | + '@param-closure-this', |
| 729 | + new ParamClosureThisTagValueNode( |
| 730 | + new IdentifierTypeNode('Foo'), |
| 731 | + '$a', |
| 732 | + 'test' |
| 733 | + ) |
| 734 | + ), |
| 735 | + ]), |
| 736 | + ]; |
| 737 | + } |
| 738 | + |
689 | 739 | public function provideVarTagsData(): Iterator
|
690 | 740 | {
|
691 | 741 | yield [
|
@@ -7185,6 +7235,7 @@ public function testReturnTypeLinesAndIndexes(string $phpDoc, array $lines): voi
|
7185 | 7235 | * @dataProvider provideTypelessParamTagsData
|
7186 | 7236 | * @dataProvider provideParamImmediatelyInvokedCallableTagsData
|
7187 | 7237 | * @dataProvider provideParamLaterInvokedCallableTagsData
|
| 7238 | + * @dataProvider provideParamClosureThisTagsData |
7188 | 7239 | * @dataProvider provideVarTagsData
|
7189 | 7240 | * @dataProvider provideReturnTagsData
|
7190 | 7241 | * @dataProvider provideThrowsTagsData
|
|
0 commit comments