Skip to content

Commit de69a9d

Browse files
committed
Improve reflection arginfo stubs
1 parent c9fc076 commit de69a9d

File tree

3 files changed

+74
-61
lines changed

3 files changed

+74
-61
lines changed

ext/reflection/reflection.stub.php

Lines changed: 61 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ class ReflectionException extends Exception
66

77
class Reflection
88
{
9-
/** @return string[] */
9+
/** @return array */
1010
public static function getModifierNames(int $modifiers) {}
1111

12-
public static function export($reflector, bool $return = false) {}
12+
public static function export(Reflector $reflector, bool $return = false) {}
1313
}
1414

1515
interface Reflector
@@ -43,10 +43,10 @@ public function isGenerator() {}
4343
/** @return bool */
4444
public function isVariadic() {}
4545

46-
/** @return object|null */
46+
/** @return ?Closure */
4747
public function getClosureThis() {}
4848

49-
/** @return ReflectionClass|null */
49+
/** @return ?ReflectionClass */
5050
public function getClosureScopeClass() {}
5151

5252
/** @return string|false */
@@ -55,7 +55,7 @@ public function getDocComment() {}
5555
/** @return int|false */
5656
public function getEndLine() {}
5757

58-
/** @return ReflectionExtension|null */
58+
/** @return ?ReflectionExtension */
5959
public function getExtension() {}
6060

6161
/** @return string|false */
@@ -67,7 +67,7 @@ public function getFileName() {}
6767
/** @return string|false */
6868
public function getName() {}
6969

70-
/** @return string */
70+
/** @return string|false */
7171
public function getNamespaceName() {}
7272

7373
/** @return int */
@@ -76,10 +76,10 @@ public function getNumberOfParameters() {}
7676
/** @return int */
7777
public function getNumberOfRequiredParameters() {}
7878

79-
/** @return RefleactionParameter[] */
79+
/** @return array */
8080
public function getParameters() {}
8181

82-
/** @return string */
82+
/** @return string|false */
8383
public function getShortName() {}
8484

8585
/** @return int|false */
@@ -88,13 +88,13 @@ public function getStartLine() {}
8888
/** @return array */
8989
public function getStaticVariables() {}
9090

91-
/** @return array */
91+
/** @return bool */
9292
public function returnsReference() {}
9393

9494
/** @return bool */
9595
public function hasReturnType() {}
9696

97-
/** @return ReflectionType|null */
97+
/** @return ?ReflectionType */
9898
public function getReturnType() {}
9999
}
100100

@@ -115,6 +115,7 @@ public function invoke(...$args) {}
115115

116116
public function invokeArgs(array $args) {}
117117

118+
/** @return Closure */
118119
public function getClosure() {}
119120
}
120121

@@ -134,7 +135,7 @@ public function getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT) {}
134135
/** @return ReflectionFunctionAbstract */
135136
public function getFunction() {}
136137

137-
/** @return object|null */
138+
/** @return ?object */
138139
public function getThis() {}
139140

140141
/** @return Generator */
@@ -143,7 +144,8 @@ public function getExecutingGenerator() {}
143144

144145
class ReflectionMethod extends ReflectionFunctionAbstract
145146
{
146-
public function __construct($class_method, string $name = UNKNOWN) {}
147+
/** @param object|string $class_or_method */
148+
public function __construct($class_or_method, string $name = UNKNOWN) {}
147149

148150
/** @return string */
149151
public function __toString() {}
@@ -180,16 +182,17 @@ public function getClosure($object = UNKNOWN) {}
180182
/** @return int */
181183
public function getModifiers() {}
182184

183-
public function invoke($object, ...$args) {}
185+
public function invoke(?object $object = null, ...$args) {}
184186

185-
public function invokeArgs($object, array $args) {}
187+
public function invokeArgs(?object $object, array $args) {}
186188

187189
/** @return ReflectionClass */
188190
public function getDeclaringClass() {}
189191

190192
/** @return ReflectionMethod */
191193
public function getPrototype() {}
192194

195+
/** @return void */
193196
public function setAccessible(bool $visible) {}
194197
}
195198

@@ -199,6 +202,7 @@ final private function __clone() {}
199202

200203
public static function export($argument, bool $return = false) {}
201204

205+
/** @param object|string $argument */
202206
public function __construct($argument) {}
203207

204208
/** @return string */
@@ -234,7 +238,7 @@ public function getEndLine() {}
234238
/** @return string|false */
235239
public function getDocComment() {}
236240

237-
/** @return ReflectionMethod|null */
241+
/** @return ?ReflectionMethod */
238242
public function getConstructor() {}
239243

240244
/** @return bool */
@@ -243,7 +247,7 @@ public function hasMethod(string $name) {}
243247
/** @return ReflectionMethod */
244248
public function getMethod(string $name) {}
245249

246-
/** @return ReflectionMethod[] */
250+
/** @return array */
247251
public function getMethods(?int $filter = null) {}
248252

249253
/** @return bool */
@@ -252,37 +256,36 @@ public function hasProperty(string $name) {}
252256
/** @return ReflectionProperty */
253257
public function getProperty(string $name) {}
254258

255-
/** @return ReflectionProperty[] */
259+
/** @return array */
256260
public function getProperties(?int $filter = null) {}
257261

258262
/** @return bool */
259263
public function hasConstant(string $name) {}
260264

261-
/** @return array */
265+
/** @return ?array */
262266
public function getConstants() {}
263267

264268
/** @return array */
265269
public function getReflectionConstants() {}
266270

267-
/** @return array */
268271
public function getConstant(string $name) {}
269272

270-
/** @return ReflectionClassConstant[] */
273+
/** @return ReflectionClassConstant|false */
271274
public function getReflectionConstant(string $name) {}
272275

273-
/** @return ReflectionClass[] */
276+
/** @return array */
274277
public function getInterfaces() {}
275278

276-
/** @return string[] */
279+
/** @return array */
277280
public function getInterfaceNames() {}
278281

279282
/** @return bool */
280283
public function isInterface() {}
281284

282-
/** @return ReflectionClass[] */
285+
/** @return array */
283286
public function getTraits() {}
284287

285-
/** @return string[] */
288+
/** @return array */
286289
public function getTraitNames() {}
287290

288291
/** @return array */
@@ -312,21 +315,21 @@ public function newInstanceWithoutConstructor() {}
312315
/** @return object */
313316
public function newInstanceArgs(array $args = []) {}
314317

315-
/** @return ReflectionClass|null */
318+
/** @return ReflectionClass|false */
316319
public function getParentClass() {}
317320

318321
/**
319322
* @param string|ReflectionClass $class
320-
*
321323
* @return bool
322324
*/
323325
public function isSubclassOf($class) {}
324326

325-
/** @return array */
327+
/** @return ?array */
326328
public function getStaticProperties() {}
327329

328330
public function getStaticPropertyValue(string $name, $default = UNKNOWN) {}
329331

332+
/** @return void */
330333
public function setStaticPropertyValue(string $name, $value) {}
331334

332335
/** @return array */
@@ -340,12 +343,11 @@ public function isIterateable() {}
340343

341344
/**
342345
* @param string|ReflectionClass $interface
343-
*
344346
* @return bool
345347
*/
346348
public function implementsInterface($interface) {}
347349

348-
/** @return ReflectionClass|null */
350+
/** @return ?ReflectionExtension */
349351
public function getExtension() {}
350352

351353
/** @return string|false */
@@ -354,16 +356,16 @@ public function getExtensionName() {}
354356
/** @return bool */
355357
public function inNamespace() {}
356358

357-
/** @return string|null */
359+
/** @return string|false */
358360
public function getNamespaceName() {}
359361

360-
/** @return string */
362+
/** @return string|false */
361363
public function getShortName() {}
362364
}
363365

364366
class ReflectionObject extends ReflectionClass
365367
{
366-
public function __construct($argument) {}
368+
public function __construct(object $argument) {}
367369

368370
public static function export($argument, bool $return = false) {}
369371
}
@@ -374,6 +376,7 @@ final private function __clone() {}
374376

375377
public static function export($class, $name, bool $return = false) {}
376378

379+
/** @param string|object $class */
377380
public function __construct($class, string $name) {}
378381

379382
/** @return string */
@@ -382,8 +385,9 @@ public function __toString() {}
382385
/** @return string|false */
383386
public function getName() {}
384387

385-
public function getValue($object = UNKNOWN) {}
388+
public function getValue(?object $object = null) {}
386389

390+
/** @return void */
387391
public function setValue($object_or_value, $value = UNKNOWN) {}
388392

389393
/** @return bool */
@@ -413,9 +417,10 @@ public function getDeclaringClass() {}
413417
/** @return string|false */
414418
public function getDocComment() {}
415419

420+
/** @return void */
416421
public function setAccessible(bool $visible) {}
417422

418-
/** @return ReflectionType */
423+
/** @return ?ReflectionType */
419424
public function getType() {}
420425

421426
/** @return bool */
@@ -428,12 +433,13 @@ final private function __clone() {}
428433

429434
public static function export($class, $name, bool $return = false) {}
430435

436+
/** @return string|object */
431437
public function __construct($class, string $name) {}
432438

433439
/** @return string */
434440
public function __toString() {}
435441

436-
/** @return string */
442+
/** @return string|false */
437443
public function getName() {}
438444

439445
public function getValue() {}
@@ -463,6 +469,10 @@ final private function __clone() {}
463469

464470
public static function export($function, $parameter, bool $return = false) {}
465471

472+
/**
473+
* @param string|array|object
474+
* @param int|string
475+
*/
466476
public function __construct($function, $parameter) {}
467477

468478
/** @return string */
@@ -480,16 +490,16 @@ public function canBePassedByValue() {}
480490
/** @return ReflectionFunctionAbstract */
481491
public function getDeclaringFunction() {}
482492

483-
/** @return ReflectionClass|null */
493+
/** @return ?ReflectionClass */
484494
public function getDeclaringClass() {}
485495

486-
/** @return ReflectionClass|null */
496+
/** @return ?ReflectionClass */
487497
public function getClass() {}
488498

489499
/** @return bool */
490500
public function hasType() {}
491501

492-
/** @return ReflectionType */
502+
/** @return ?ReflectionType */
493503
public function getType() {}
494504

495505
/** @return bool */
@@ -504,7 +514,7 @@ public function allowsNull() {}
504514
/** @return int */
505515
public function getPosition() {}
506516

507-
/** @return true */
517+
/** @return bool */
508518
public function isOptional() {}
509519

510520
/** @return bool */
@@ -515,7 +525,7 @@ public function getDefaultValue() {}
515525
/** @return bool */
516526
public function isDefaultValueConstant() {}
517527

518-
/** @return string|null */
528+
/** @return ?string */
519529
public function getDefaultValueConstantName() {}
520530

521531
/** @return bool */
@@ -556,10 +566,10 @@ public function __toString() {}
556566
/** @return string|false */
557567
public function getName() {}
558568

559-
/** @return string|null */
569+
/** @return ?string */
560570
public function getVersion() {}
561571

562-
/** @return ReflectionFunction[] */
572+
/** @return array */
563573
public function getFunctions() {}
564574

565575
/** @return array */
@@ -568,7 +578,7 @@ public function getConstants() {}
568578
/** @return array */
569579
public function getINIEntries() {}
570580

571-
/** @return ReflectionClass[] */
581+
/** @return array */
572582
public function getClasses() {}
573583

574584
/** @return array */
@@ -577,6 +587,7 @@ public function getClassNames() {}
577587
/** @return array */
578588
public function getDependencies() {}
579589

590+
/** @return void */
580591
public function info() {}
581592

582593
/** @return bool */
@@ -615,9 +626,14 @@ public function getCopyright() {}
615626

616627
final class ReflectionReference
617628
{
618-
public function fromArrayElement(array $array, $key): ?ReflectionReference {}
629+
/**
630+
* @param int|string $key
631+
* @return ?ReflectionReference
632+
*/
633+
public static function fromArrayElement(array $array, $key) {}
619634

620-
public function getId(): string {}
635+
/** @return string */
636+
public function getId() {}
621637

622638
private function __clone() {}
623639

0 commit comments

Comments
 (0)