@@ -92,20 +92,14 @@ public static function enum(string $name): self
92
92
}
93
93
94
94
95
- /**
96
- * @param string|object $class
97
- */
98
- public static function from ($ class , bool $ withBodies = false , bool $ materializeTraits = true ): self
95
+ public static function from (string |object $ class , bool $ withBodies = false , bool $ materializeTraits = true ): self
99
96
{
100
97
return (new Factory )
101
98
->fromClassReflection (new \ReflectionClass ($ class ), $ withBodies , $ materializeTraits );
102
99
}
103
100
104
101
105
- /**
106
- * @param string|object $class
107
- */
108
- public static function withBodiesFrom ($ class ): self
102
+ public static function withBodiesFrom (string |object $ class ): self
109
103
{
110
104
return (new Factory )
111
105
->fromClassReflection (new \ReflectionClass ($ class ), withBodies: true );
@@ -139,8 +133,7 @@ public function getNamespace(): ?PhpNamespace
139
133
}
140
134
141
135
142
- /** @return static */
143
- public function setName (?string $ name ): self
136
+ public function setName (?string $ name ): static
144
137
{
145
138
if ($ name !== null && (!Helpers::isIdentifier ($ name ) || isset (Helpers::KEYWORDS [strtolower ($ name )]))) {
146
139
throw new Nette \InvalidArgumentException ("Value ' $ name' is not valid class name. " );
@@ -158,7 +151,7 @@ public function getName(): ?string
158
151
159
152
160
153
/** @deprecated */
161
- public function setClass (): self
154
+ public function setClass (): static
162
155
{
163
156
$ this ->type = self ::TYPE_CLASS ;
164
157
return $ this ;
@@ -171,8 +164,7 @@ public function isClass(): bool
171
164
}
172
165
173
166
174
- /** @return static */
175
- public function setInterface (): self
167
+ public function setInterface (): static
176
168
{
177
169
$ this ->type = self ::TYPE_INTERFACE ;
178
170
return $ this ;
@@ -185,8 +177,7 @@ public function isInterface(): bool
185
177
}
186
178
187
179
188
- /** @return static */
189
- public function setTrait (): self
180
+ public function setTrait (): static
190
181
{
191
182
$ this ->type = self ::TYPE_TRAIT ;
192
183
return $ this ;
@@ -205,8 +196,7 @@ public function isEnum(): bool
205
196
}
206
197
207
198
208
- /** @return static */
209
- public function setType (string $ type ): self
199
+ public function setType (string $ type ): static
210
200
{
211
201
if (!in_array ($ type , [self ::TYPE_CLASS , self ::TYPE_INTERFACE , self ::TYPE_TRAIT , self ::TYPE_ENUM ], true )) {
212
202
throw new Nette \InvalidArgumentException ('Argument must be class|interface|trait|enum. ' );
@@ -223,8 +213,7 @@ public function getType(): string
223
213
}
224
214
225
215
226
- /** @return static */
227
- public function setFinal (bool $ state = true ): self
216
+ public function setFinal (bool $ state = true ): static
228
217
{
229
218
$ this ->final = $ state ;
230
219
return $ this ;
@@ -237,8 +226,7 @@ public function isFinal(): bool
237
226
}
238
227
239
228
240
- /** @return static */
241
- public function setAbstract (bool $ state = true ): self
229
+ public function setAbstract (bool $ state = true ): static
242
230
{
243
231
$ this ->abstract = $ state ;
244
232
return $ this ;
@@ -253,29 +241,23 @@ public function isAbstract(): bool
253
241
254
242
/**
255
243
* @param string|string[] $names
256
- * @return static
257
244
*/
258
- public function setExtends ($ names ): self
245
+ public function setExtends (string | array $ names ): static
259
246
{
260
- if (!is_string ($ names ) && !is_array ($ names )) {
261
- throw new Nette \InvalidArgumentException ('Argument must be string or string[]. ' );
262
- }
263
-
264
247
$ this ->validateNames ((array ) $ names );
265
248
$ this ->extends = $ names ;
266
249
return $ this ;
267
250
}
268
251
269
252
270
253
/** @return string|string[] */
271
- public function getExtends ()
254
+ public function getExtends (): string | array
272
255
{
273
256
return $ this ->extends ;
274
257
}
275
258
276
259
277
- /** @return static */
278
- public function addExtend (string $ name ): self
260
+ public function addExtend (string $ name ): static
279
261
{
280
262
$ this ->validateNames ([$ name ]);
281
263
$ this ->extends = (array ) $ this ->extends ;
@@ -286,9 +268,8 @@ public function addExtend(string $name): self
286
268
287
269
/**
288
270
* @param string[] $names
289
- * @return static
290
271
*/
291
- public function setImplements (array $ names ): self
272
+ public function setImplements (array $ names ): static
292
273
{
293
274
$ this ->validateNames ($ names );
294
275
$ this ->implements = $ names ;
@@ -303,17 +284,15 @@ public function getImplements(): array
303
284
}
304
285
305
286
306
- /** @return static */
307
- public function addImplement (string $ name ): self
287
+ public function addImplement (string $ name ): static
308
288
{
309
289
$ this ->validateNames ([$ name ]);
310
290
$ this ->implements [] = $ name ;
311
291
return $ this ;
312
292
}
313
293
314
294
315
- /** @return static */
316
- public function removeImplement (string $ name ): self
295
+ public function removeImplement (string $ name ): static
317
296
{
318
297
$ this ->implements = array_diff ($ this ->implements , [$ name ]);
319
298
return $ this ;
@@ -322,10 +301,10 @@ public function removeImplement(string $name): self
322
301
323
302
/**
324
303
* @param string[]|TraitUse[] $traits
325
- * @return static
326
304
*/
327
- public function setTraits (array $ traits ): self
305
+ public function setTraits (array $ traits ): static
328
306
{
307
+ (function (TraitUse |string ...$ traits ) {})(...$ traits );
329
308
$ this ->traits = [];
330
309
foreach ($ traits as $ trait ) {
331
310
if (!$ trait instanceof TraitUse) {
@@ -353,11 +332,7 @@ public function getTraitResolutions(): array
353
332
}
354
333
355
334
356
- /**
357
- * @param array|bool $resolutions
358
- * @return static|TraitUse
359
- */
360
- public function addTrait (string $ name , $ resolutions = [])
335
+ public function addTrait (string $ name , array |bool $ resolutions = []): static |TraitUse
361
336
{
362
337
$ this ->traits [$ name ] = $ trait = new TraitUse ($ name );
363
338
if ($ resolutions === true ) {
@@ -369,37 +344,30 @@ public function addTrait(string $name, $resolutions = [])
369
344
}
370
345
371
346
372
- /** @return static */
373
- public function removeTrait (string $ name ): self
347
+ public function removeTrait (string $ name ): static
374
348
{
375
349
unset($ this ->traits [$ name ]);
376
350
return $ this ;
377
351
}
378
352
379
353
380
- /**
381
- * @param Method|Property|Constant|EnumCase|TraitUse $member
382
- * @return static
383
- */
384
- public function addMember ($ member ): self
354
+ public function addMember (Method |Property |Constant |EnumCase |TraitUse $ member ): static
385
355
{
386
356
match (true ) {
387
357
$ member instanceof Method => $ this ->methods [strtolower ($ member ->getName ())] = $ member ,
388
358
$ member instanceof Property => $ this ->properties [$ member ->getName ()] = $ member ,
389
359
$ member instanceof Constant => $ this ->consts [$ member ->getName ()] = $ member ,
390
360
$ member instanceof EnumCase => $ this ->cases [$ member ->getName ()] = $ member ,
391
361
$ member instanceof TraitUse => $ this ->traits [$ member ->getName ()] = $ member ,
392
- default => throw new Nette \InvalidArgumentException ('Argument must be Method|Property|Constant|EnumCase|TraitUse. ' ),
393
362
};
394
363
return $ this ;
395
364
}
396
365
397
366
398
367
/**
399
368
* @param Constant[]|mixed[] $consts
400
- * @return static
401
369
*/
402
- public function setConstants (array $ consts ): self
370
+ public function setConstants (array $ consts ): static
403
371
{
404
372
$ this ->consts = [];
405
373
foreach ($ consts as $ k => $ const ) {
@@ -429,8 +397,7 @@ public function addConstant(string $name, $value): Constant
429
397
}
430
398
431
399
432
- /** @return static */
433
- public function removeConstant (string $ name ): self
400
+ public function removeConstant (string $ name ): static
434
401
{
435
402
unset($ this ->consts [$ name ]);
436
403
return $ this ;
@@ -440,9 +407,8 @@ public function removeConstant(string $name): self
440
407
/**
441
408
* Sets cases to enum
442
409
* @param EnumCase[] $cases
443
- * @return static
444
410
*/
445
- public function setCases (array $ cases ): self
411
+ public function setCases (array $ cases ): static
446
412
{
447
413
(function (EnumCase ...$ cases ) {})(...array_values ($ cases ));
448
414
$ this ->cases = [];
@@ -462,15 +428,14 @@ public function getCases(): array
462
428
463
429
464
430
/** Adds case to enum */
465
- public function addCase (string $ name , $ value = null ): EnumCase
431
+ public function addCase (string $ name , string | int | null $ value = null ): EnumCase
466
432
{
467
433
return $ this ->cases [$ name ] = (new EnumCase ($ name ))
468
434
->setValue ($ value );
469
435
}
470
436
471
437
472
- /** @return static */
473
- public function removeCase (string $ name ): self
438
+ public function removeCase (string $ name ): static
474
439
{
475
440
unset($ this ->cases [$ name ]);
476
441
return $ this ;
@@ -479,9 +444,8 @@ public function removeCase(string $name): self
479
444
480
445
/**
481
446
* @param Property[] $props
482
- * @return static
483
447
*/
484
- public function setProperties (array $ props ): self
448
+ public function setProperties (array $ props ): static
485
449
{
486
450
(function (Property ...$ props ) {})(...array_values ($ props ));
487
451
$ this ->properties = [];
@@ -523,9 +487,8 @@ public function addProperty(string $name, $value = null): Property
523
487
524
488
/**
525
489
* @param string $name without $
526
- * @return static
527
490
*/
528
- public function removeProperty (string $ name ): self
491
+ public function removeProperty (string $ name ): static
529
492
{
530
493
unset($ this ->properties [$ name ]);
531
494
return $ this ;
@@ -540,9 +503,8 @@ public function hasProperty(string $name): bool
540
503
541
504
/**
542
505
* @param Method[] $methods
543
- * @return static
544
506
*/
545
- public function setMethods (array $ methods ): self
507
+ public function setMethods (array $ methods ): static
546
508
{
547
509
(function (Method ...$ methods ) {})(...array_values ($ methods ));
548
510
$ this ->methods = [];
@@ -588,8 +550,7 @@ public function addMethod(string $name): Method
588
550
}
589
551
590
552
591
- /** @return static */
592
- public function removeMethod (string $ name ): self
553
+ public function removeMethod (string $ name ): static
593
554
{
594
555
unset($ this ->methods [strtolower ($ name )]);
595
556
return $ this ;
0 commit comments