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