Skip to content

Commit a355aaa

Browse files
committed
Fix for Threaded
1 parent 707f57a commit a355aaa

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/Type/ObjectType.php

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -696,7 +696,8 @@ public function getIterableKeyType(): Type
696696
}
697697
}
698698

699-
if ($this->isInstanceOf(Traversable::class)->yes() && !$this->isExtraOffsetAccessibleClass()->yes()) {
699+
$extraOffsetAccessible = $this->isExtraOffsetAccessibleClass()->yes();
700+
if ($this->isInstanceOf(Traversable::class)->yes() && !$extraOffsetAccessible) {
700701
$isTraversable = true;
701702
$tKey = GenericTypeVariableResolver::getType($this, Traversable::class, 'TKey');
702703
if ($tKey !== null) {
@@ -712,6 +713,10 @@ public function getIterableKeyType(): Type
712713
)->getReturnType());
713714
}
714715

716+
if ($extraOffsetAccessible) {
717+
return new MixedType(true);
718+
}
719+
715720
if ($isTraversable) {
716721
return new MixedType();
717722
}
@@ -732,7 +737,8 @@ public function getIterableValueType(): Type
732737
}
733738
}
734739

735-
if ($this->isInstanceOf(Traversable::class)->yes() && !$this->isExtraOffsetAccessibleClass()->yes()) {
740+
$extraOffsetAccessible = $this->isExtraOffsetAccessibleClass()->yes();
741+
if ($this->isInstanceOf(Traversable::class)->yes() && !$extraOffsetAccessible) {
736742
$isTraversable = true;
737743
$tValue = GenericTypeVariableResolver::getType($this, Traversable::class, 'TValue');
738744
if ($tValue !== null) {
@@ -748,6 +754,10 @@ public function getIterableValueType(): Type
748754
)->getReturnType());
749755
}
750756

757+
if ($extraOffsetAccessible) {
758+
return new MixedType(true);
759+
}
760+
751761
if ($isTraversable) {
752762
return new MixedType();
753763
}

0 commit comments

Comments
 (0)