Skip to content

Commit 86c4e44

Browse files
Solve deprecations
1 parent c46ca79 commit 86c4e44

File tree

4 files changed

+37
-13
lines changed

4 files changed

+37
-13
lines changed

src/Reflection/InitializerExprTypeResolver.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -407,11 +407,11 @@ public function getType(Expr $expr, InitializerExprContext $context): Type
407407

408408
if ($expr instanceof PropertyFetch && $expr->name instanceof Identifier) {
409409
$fetchedOnType = $this->getType($expr->var, $context);
410-
if (!$fetchedOnType->hasProperty($expr->name->name)->yes()) {
410+
if (!$fetchedOnType->hasInstanceProperty($expr->name->name)->yes()) {
411411
return new ErrorType();
412412
}
413413

414-
return $fetchedOnType->getProperty($expr->name->name, new OutOfClassScope())->getReadableType();
414+
return $fetchedOnType->getInstanceProperty($expr->name->name, new OutOfClassScope())->getReadableType();
415415
}
416416

417417
return new MixedType();

src/Rules/DeadCode/UnusedPrivatePropertyRule.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,14 @@ public function processNode(Node $node, Scope $scope): array
182182
if (!array_key_exists($propertyName, $properties)) {
183183
continue;
184184
}
185-
$propertyReflection = $usageScope->getPropertyReflection($fetchedOnType, $propertyName);
185+
186+
$propertyNode = $properties[$propertyName]['node'];
187+
if ($propertyNode->isStatic()) {
188+
$propertyReflection = $usageScope->getStaticPropertyReflection($fetchedOnType, $propertyName);
189+
} else {
190+
$propertyReflection = $usageScope->getInstancePropertyReflection($fetchedOnType, $propertyName);
191+
}
192+
186193
if ($propertyReflection === null) {
187194
if (!$classType->isSuperTypeOf($fetchedOnType)->no()) {
188195
if ($usage instanceof PropertyRead) {

src/Rules/Properties/PropertyReflectionFinder.php

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public function findPropertyReflectionsFromNode($propertyFetch, Scope $scope): a
3333
$reflections = [];
3434
$propertyHolderType = $scope->getType($propertyFetch->var);
3535
foreach ($names as $name) {
36-
$reflection = $this->findPropertyReflection(
36+
$reflection = $this->findInstancePropertyReflection(
3737
$propertyHolderType,
3838
$name,
3939
$propertyFetch->name instanceof Expr ? $scope->filterByTruthyValue(new Expr\BinaryOp\Identical(
@@ -65,7 +65,7 @@ public function findPropertyReflectionsFromNode($propertyFetch, Scope $scope): a
6565

6666
$reflections = [];
6767
foreach ($names as $name) {
68-
$reflection = $this->findPropertyReflection(
68+
$reflection = $this->findStaticPropertyReflection(
6969
$propertyHolderType,
7070
$name,
7171
$propertyFetch->name instanceof Expr ? $scope->filterByTruthyValue(new Expr\BinaryOp\Identical(
@@ -91,13 +91,13 @@ public function findPropertyReflectionFromNode($propertyFetch, Scope $scope): ?F
9191
if ($propertyFetch instanceof Node\Expr\PropertyFetch) {
9292
$propertyHolderType = $scope->getType($propertyFetch->var);
9393
if ($propertyFetch->name instanceof Node\Identifier) {
94-
return $this->findPropertyReflection($propertyHolderType, $propertyFetch->name->name, $scope);
94+
return $this->findInstancePropertyReflection($propertyHolderType, $propertyFetch->name->name, $scope);
9595
}
9696

9797
$nameType = $scope->getType($propertyFetch->name);
9898
$nameTypeConstantStrings = $nameType->getConstantStrings();
9999
if (count($nameTypeConstantStrings) === 1) {
100-
return $this->findPropertyReflection($propertyHolderType, $nameTypeConstantStrings[0]->getValue(), $scope);
100+
return $this->findInstancePropertyReflection($propertyHolderType, $nameTypeConstantStrings[0]->getValue(), $scope);
101101
}
102102

103103
return null;
@@ -113,16 +113,33 @@ public function findPropertyReflectionFromNode($propertyFetch, Scope $scope): ?F
113113
$propertyHolderType = $scope->getType($propertyFetch->class);
114114
}
115115

116-
return $this->findPropertyReflection($propertyHolderType, $propertyFetch->name->name, $scope);
116+
return $this->findStaticPropertyReflection($propertyHolderType, $propertyFetch->name->name, $scope);
117117
}
118118

119-
private function findPropertyReflection(Type $propertyHolderType, string $propertyName, Scope $scope): ?FoundPropertyReflection
119+
private function findInstancePropertyReflection(Type $propertyHolderType, string $propertyName, Scope $scope): ?FoundPropertyReflection
120120
{
121-
if (!$propertyHolderType->hasProperty($propertyName)->yes()) {
121+
if (!$propertyHolderType->hasInstanceProperty($propertyName)->yes()) {
122122
return null;
123123
}
124124

125-
$originalProperty = $propertyHolderType->getProperty($propertyName, $scope);
125+
$originalProperty = $propertyHolderType->getInstanceProperty($propertyName, $scope);
126+
127+
return new FoundPropertyReflection(
128+
$originalProperty,
129+
$scope,
130+
$propertyName,
131+
$originalProperty->getReadableType(),
132+
$originalProperty->getWritableType(),
133+
);
134+
}
135+
136+
private function findStaticPropertyReflection(Type $propertyHolderType, string $propertyName, Scope $scope): ?FoundPropertyReflection
137+
{
138+
if (!$propertyHolderType->hasStaticProperty($propertyName)->yes()) {
139+
return null;
140+
}
141+
142+
$originalProperty = $propertyHolderType->getStaticProperty($propertyName, $scope);
126143

127144
return new FoundPropertyReflection(
128145
$originalProperty,

src/Type/Php/ArrayColumnHelper.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,15 +149,15 @@ private function getOffsetOrProperty(Type $type, Type $offsetOrProperty, Scope $
149149
}
150150
foreach ($propertyTypes as $propertyType) {
151151
$propertyName = $propertyType->getValue();
152-
$hasProperty = $type->hasProperty($propertyName);
152+
$hasProperty = $type->hasInstanceProperty($propertyName);
153153
if ($hasProperty->maybe()) {
154154
return $allowMaybe ? new MixedType() : null;
155155
}
156156
if (!$hasProperty->yes()) {
157157
continue;
158158
}
159159

160-
$returnTypes[] = $type->getProperty($propertyName, $scope)->getReadableType();
160+
$returnTypes[] = $type->getInstanceProperty($propertyName, $scope)->getReadableType();
161161
}
162162
}
163163

0 commit comments

Comments
 (0)