Skip to content

Commit ab85120

Browse files
committed
Fixed issue with ArrayAccess stub
1 parent c7ec02e commit ab85120

4 files changed

Lines changed: 23 additions & 2 deletions

File tree

stubs/ArrayObject.stub

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ interface ArrayAccess
2020
public function offsetGet($offset);
2121

2222
/**
23-
* @param TKey $offset
23+
* @param TKey|null $offset
2424
* @param TValue $value
2525
* @return void
2626
*/

tests/PHPStan/Rules/Arrays/OffsetAccessAssignmentRuleTest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,4 +121,10 @@ public function testInheritDocTemplateTypeResolution(): void
121121
$this->analyse([__DIR__ . '/data/inherit-doc-template-type-resolution.php'], []);
122122
}
123123

124+
public function testAssignNewOffsetToStubbedClass(): void
125+
{
126+
$this->checkUnionTypes = true;
127+
$this->analyse([__DIR__ . '/data/new-offset-stub.php'], []);
128+
}
129+
124130
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
namespace NewOffsetStub;
4+
5+
/**
6+
* @phpstan-implements \ArrayAccess<int, \stdClass>
7+
*/
8+
abstract class Foo implements \ArrayAccess
9+
{
10+
11+
}
12+
13+
function (Foo $foo): void {
14+
$foo[] = new \stdClass();
15+
};

tests/PHPStan/Rules/Methods/data/bug-2950.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public function offsetGet($offset): float
100100
}
101101

102102
/**
103-
* @param int $offset
103+
* @param int|null $offset
104104
* @param float $value
105105
*/
106106
public function offsetSet($offset, $value): void

0 commit comments

Comments
 (0)