Skip to content

Commit 0887d78

Browse files
committed
refactor
1 parent 4f91abb commit 0887d78

17 files changed

+40
-39
lines changed

src/Type/Accessory/AccessoryArrayListType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ public function unsetOffset(Type $offsetType): Type
172172
return new ErrorType();
173173
}
174174

175-
public function getKeysArray(): Type
175+
public function getKeysArray(?Type $filterValueType = null, bool $strict = false): Type
176176
{
177177
return $this;
178178
}

src/Type/Accessory/HasOffsetType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ public function looseCompare(Type $type, PhpVersion $phpVersion): BooleanType
352352
return new BooleanType();
353353
}
354354

355-
public function getKeysArray(): Type
355+
public function getKeysArray(?Type $filterValueType = null, bool $strict = false): Type
356356
{
357357
return new NonEmptyArrayType();
358358
}

src/Type/Accessory/HasOffsetValueType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ public function unsetOffset(Type $offsetType): Type
195195
return $this;
196196
}
197197

198-
public function getKeysArray(): Type
198+
public function getKeysArray(?Type $filterValueType = null, bool $strict = false): Type
199199
{
200200
return new NonEmptyArrayType();
201201
}

src/Type/Accessory/NonEmptyArrayType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ public function unsetOffset(Type $offsetType): Type
159159
return new ErrorType();
160160
}
161161

162-
public function getKeysArray(): Type
162+
public function getKeysArray(?Type $filterValueType = null, bool $strict = false): Type
163163
{
164164
return $this;
165165
}

src/Type/Accessory/OversizedArrayType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ public function unsetOffset(Type $offsetType): Type
154154
return new ErrorType();
155155
}
156156

157-
public function getKeysArray(): Type
157+
public function getKeysArray(?Type $filterValueType = null, bool $strict = false): Type
158158
{
159159
return $this;
160160
}

src/Type/ArrayType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ public function generalizeValues(): self
170170
return new self($this->keyType, $this->itemType->generalize(GeneralizePrecision::lessSpecific()));
171171
}
172172

173-
public function getKeysArray(): Type
173+
public function getKeysArray(?Type $filterValueType = null, bool $strict = false): Type
174174
{
175175
return TypeCombinator::intersect(new self(new IntegerType(), $this->getIterableKeyType()), new AccessoryArrayListType());
176176
}

src/Type/Constant/ConstantArrayType.php

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1372,9 +1372,21 @@ private function degradeToGeneralArray(): Type
13721372
return $builder->getArray();
13731373
}
13741374

1375-
public function getKeysArray(): self
1375+
public function getKeysArray(?Type $filterValueType = null, bool $strict = false): Type
13761376
{
1377-
return $this->getKeysOrValuesArray($this->keyTypes);
1377+
$keysArray = $this->getKeysOrValuesArray($this->keyTypes);
1378+
1379+
if ($filterValueType !== null) {
1380+
return TypeCombinator::intersect(
1381+
new ArrayType(
1382+
$keysArray->getIterableKeyType()->generalize(GeneralizePrecision::lessSpecific()),
1383+
$keysArray->getIterableValueType()->generalize(GeneralizePrecision::lessSpecific()),
1384+
),
1385+
new AccessoryArrayListType(),
1386+
);
1387+
}
1388+
1389+
return $keysArray;
13781390
}
13791391

13801392
public function getValuesArray(): self

src/Type/IntersectionType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -842,9 +842,9 @@ public function unsetOffset(Type $offsetType): Type
842842
return $this->intersectTypes(static fn (Type $type): Type => $type->unsetOffset($offsetType));
843843
}
844844

845-
public function getKeysArray(): Type
845+
public function getKeysArray(?Type $filterValueType = null, bool $strict = false): Type
846846
{
847-
return $this->intersectTypes(static fn (Type $type): Type => $type->getKeysArray());
847+
return $this->intersectTypes(static fn (Type $type): Type => $type->getKeysArray($filterValueType, $strict));
848848
}
849849

850850
public function getValuesArray(): Type

src/Type/MixedType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ public function unsetOffset(Type $offsetType): Type
180180
return $this;
181181
}
182182

183-
public function getKeysArray(): Type
183+
public function getKeysArray(?Type $filterValueType = null, bool $strict = false): Type
184184
{
185185
if ($this->isArray()->no()) {
186186
return new ErrorType();

src/Type/NeverType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ public function unsetOffset(Type $offsetType): Type
273273
return new NeverType();
274274
}
275275

276-
public function getKeysArray(): Type
276+
public function getKeysArray(?Type $filterValueType = null, bool $strict = false): Type
277277
{
278278
return new NeverType();
279279
}

0 commit comments

Comments
 (0)