Skip to content

Commit 09c002a

Browse files
authored
Drop UselessPrivatePropertyNullabilityRule (#283)
1 parent 4ec8f56 commit 09c002a

File tree

7 files changed

+2
-316
lines changed

7 files changed

+2
-316
lines changed

README.md

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ function example(MyClass $class) {
592592

593593
### forbidUselessNullableReturn
594594
- Denies marking closure/function/method return type as nullable when null is never returned
595-
- Recommended to be used together with `uselessPrivatePropertyDefaultValue` and `UselessPrivatePropertyNullabilityRule`
595+
- Recommended to be used together with `uselessPrivatePropertyDefaultValue`
596596
```php
597597
public function example(int $foo): ?int { // null never returned
598598
if ($foo < 0) {
@@ -664,7 +664,7 @@ try {
664664
- Detects useless default value of a private property that is always initialized in constructor.
665665
- Cannot handle conditions or private method calls within constructor.
666666
- When enabled, return statements in constructors are denied to avoid false positives
667-
- Recommended to be used with `uselessPrivatePropertyNullability` and `forbidUselessNullableReturn`
667+
- Recommended to be used with `forbidUselessNullableReturn`
668668
```php
669669
class Example
670670
{
@@ -677,29 +677,6 @@ class Example
677677
}
678678
```
679679

680-
### uselessPrivatePropertyNullability:
681-
- Detects useless nullability of a private property by checking type of all assignments.
682-
- Works only with natively typehinted properties
683-
- Recommended to be used with `uselessPrivatePropertyNullability` and `forbidUselessNullableReturn` as removing useless default value may cause useless nullability to be detected
684-
- PHPStan 1.12 with bleeding edge contains more generic version of this rule under `property.unusedType` error identifier
685-
686-
```php
687-
class Example
688-
{
689-
private ?int $field; // useless nullability
690-
691-
public function __construct()
692-
{
693-
$this->field = 1;
694-
}
695-
696-
public function setField(int $value)
697-
{
698-
$this->field = $value;
699-
}
700-
}
701-
```
702-
703680
## Native PHPStan extra strictness
704681
Some strict behaviour in PHPStan is not enabled by default, consider enabling extra strictness even there:
705682

rules.neon

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,6 @@ parameters:
8686
reportEvenIfExceptionIsNotAcceptableByRethrownOne: true
8787
uselessPrivatePropertyDefaultValue:
8888
enabled: %shipmonkRules.enableAllRules%
89-
uselessPrivatePropertyNullability:
90-
enabled: %shipmonkRules.enableAllRules%
9189

9290
parametersSchema:
9391
shipmonkRules: structure([
@@ -212,9 +210,6 @@ parametersSchema:
212210
uselessPrivatePropertyDefaultValue: structure([
213211
enabled: bool()
214212
])
215-
uselessPrivatePropertyNullability: structure([
216-
enabled: bool()
217-
])
218213
])
219214

220215
conditionalTags:
@@ -290,17 +285,13 @@ conditionalTags:
290285
phpstan.rules.rule: %shipmonkRules.requirePreviousExceptionPass.enabled%
291286
ShipMonk\PHPStan\Rule\UselessPrivatePropertyDefaultValueRule:
292287
phpstan.rules.rule: %shipmonkRules.uselessPrivatePropertyDefaultValue.enabled%
293-
ShipMonk\PHPStan\Rule\UselessPrivatePropertyNullabilityRule:
294-
phpstan.rules.rule: %shipmonkRules.uselessPrivatePropertyNullability.enabled%
295288

296289
ShipMonk\PHPStan\Visitor\UnusedExceptionVisitor:
297290
phpstan.parser.richParserNodeVisitor: %shipmonkRules.forbidUnusedException.enabled%
298291
ShipMonk\PHPStan\Visitor\UnusedMatchVisitor:
299292
phpstan.parser.richParserNodeVisitor: %shipmonkRules.forbidUnusedMatchResult.enabled%
300293
ShipMonk\PHPStan\Visitor\TopLevelConstructorPropertyFetchMarkingVisitor:
301294
phpstan.parser.richParserNodeVisitor: %shipmonkRules.uselessPrivatePropertyDefaultValue.enabled%
302-
ShipMonk\PHPStan\Visitor\ClassPropertyAssignmentVisitor:
303-
phpstan.parser.richParserNodeVisitor: %shipmonkRules.uselessPrivatePropertyNullability.enabled%
304295

305296
services:
306297
-
@@ -405,8 +396,6 @@ services:
405396
class: ShipMonk\PHPStan\Rule\ForbidReturnInConstructorRule
406397
-
407398
class: ShipMonk\PHPStan\Rule\UselessPrivatePropertyDefaultValueRule
408-
-
409-
class: ShipMonk\PHPStan\Rule\UselessPrivatePropertyNullabilityRule
410399

411400
-
412401
class: ShipMonk\PHPStan\Rule\RequirePreviousExceptionPassRule
@@ -418,5 +407,3 @@ services:
418407
class: ShipMonk\PHPStan\Visitor\UnusedMatchVisitor
419408
-
420409
class: ShipMonk\PHPStan\Visitor\TopLevelConstructorPropertyFetchMarkingVisitor
421-
-
422-
class: ShipMonk\PHPStan\Visitor\ClassPropertyAssignmentVisitor

src/Rule/UselessPrivatePropertyNullabilityRule.php

Lines changed: 0 additions & 119 deletions
This file was deleted.

src/Visitor/ClassPropertyAssignmentVisitor.php

Lines changed: 0 additions & 66 deletions
This file was deleted.

tests/Rule/UselessPrivatePropertyNullabilityRuleTest.php

Lines changed: 0 additions & 36 deletions
This file was deleted.

tests/Rule/data/UselessPrivatePropertyNullabilityRule/class-property-assignment-visitor.neon

Lines changed: 0 additions & 5 deletions
This file was deleted.

tests/Rule/data/UselessPrivatePropertyNullabilityRule/code.php

Lines changed: 0 additions & 52 deletions
This file was deleted.

0 commit comments

Comments
 (0)