@@ -44,7 +44,10 @@ final class Method extends BaseTag implements Factory\StaticMethod
44
44
/** @var string */
45
45
private $ methodName = '' ;
46
46
47
- /** @var string[][] */
47
+ /**
48
+ * @phpstan-var array<int, array{name: string, type: Type}>
49
+ * @var array<int, array<string, Type|string>>
50
+ */
48
51
private $ arguments = [];
49
52
50
53
/** @var bool */
@@ -54,9 +57,9 @@ final class Method extends BaseTag implements Factory\StaticMethod
54
57
private $ returnType ;
55
58
56
59
/**
57
- * @param mixed[][] $arguments
60
+ * @param array<int, array<string, Type|string>> $arguments
58
61
*
59
- * @psalm -param array<int, array< string, string| Type> |string> $arguments
62
+ * @phpstan -param array<int, array{name: string, type: Type} |string> $arguments
60
63
*/
61
64
public function __construct (
62
65
string $ methodName ,
@@ -78,9 +81,6 @@ public function __construct(
78
81
$ this ->description = $ description ;
79
82
}
80
83
81
- /**
82
- * {@inheritdoc}
83
- */
84
84
public static function create (
85
85
string $ body ,
86
86
?TypeResolver $ typeResolver = null ,
@@ -137,7 +137,7 @@ public static function create(
137
137
return null ;
138
138
}
139
139
140
- [, $ static , $ returnType , $ methodName , $ arguments , $ description ] = $ matches ;
140
+ [, $ static , $ returnType , $ methodName , $ argumentLines , $ description ] = $ matches ;
141
141
142
142
$ static = $ static === 'static ' ;
143
143
@@ -148,9 +148,11 @@ public static function create(
148
148
$ returnType = $ typeResolver ->resolve ($ returnType , $ context );
149
149
$ description = $ descriptionFactory ->create ($ description , $ context );
150
150
151
- if ($ arguments !== '' ) {
152
- $ arguments = explode (', ' , $ arguments );
153
- foreach ($ arguments as &$ argument ) {
151
+ /** @phpstan-var array<int, array{name: string, type: Type}> $arguments */
152
+ $ arguments = [];
153
+ if ($ argumentLines !== '' ) {
154
+ $ argumentsExploded = explode (', ' , $ argumentLines );
155
+ foreach ($ argumentsExploded as $ argument ) {
154
156
$ argument = explode (' ' , self ::stripRestArg (trim ($ argument )), 2 );
155
157
if ($ argument [0 ][0 ] === '$ ' ) {
156
158
$ argumentName = substr ($ argument [0 ], 1 );
@@ -164,10 +166,8 @@ public static function create(
164
166
}
165
167
}
166
168
167
- $ argument = ['name ' => $ argumentName , 'type ' => $ argumentType ];
169
+ $ arguments [] = ['name ' => $ argumentName , 'type ' => $ argumentType ];
168
170
}
169
- } else {
170
- $ arguments = [];
171
171
}
172
172
173
173
return new static ($ methodName , $ arguments , $ returnType , $ static , $ description );
@@ -182,7 +182,9 @@ public function getMethodName() : string
182
182
}
183
183
184
184
/**
185
- * @return string[][]
185
+ * @return array<int, array<string, Type|string>>
186
+ *
187
+ * @phpstan-return array<int, array{name: string, type: Type}>
186
188
*/
187
189
public function getArguments () : array
188
190
{
@@ -223,8 +225,8 @@ public function __toString() : string
223
225
*
224
226
* @return mixed[][]
225
227
*
226
- * @psalm -param array<int, array< string, string| Type> |string> $arguments
227
- * @psalm -return array<int, array< string, string| Type>> $arguments
228
+ * @phpstan -param array<int, array{name: string, type: Type} |string> $arguments
229
+ * @phpstan -return array<int, array{name: string, type: Type}>
228
230
*/
229
231
private function filterArguments (array $ arguments = []) : array
230
232
{
0 commit comments