From 2afc0a461184a83e65dd44c671e42b51784ba67d Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 24 May 2026 14:18:43 +0200 Subject: [PATCH] Test array_key_exists() on subtracted enum --- .../nsrt/array-key-exists-on-subtracted.php | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 tests/PHPStan/Analyser/nsrt/array-key-exists-on-subtracted.php diff --git a/tests/PHPStan/Analyser/nsrt/array-key-exists-on-subtracted.php b/tests/PHPStan/Analyser/nsrt/array-key-exists-on-subtracted.php new file mode 100644 index 0000000000..2261e3afa3 --- /dev/null +++ b/tests/PHPStan/Analyser/nsrt/array-key-exists-on-subtracted.php @@ -0,0 +1,20 @@ += 8.0 + +namespace ArrayKeyExistsSubtracted; + +use function PHPStan\Testing\assertType; + +enum IntBacked: int { + case A = 1; + case B = 2; +} + +function test(IntBacked $i, array $arr): void { + if ($i !== IntBacked::A) { + assertType('2', $i->value); + + if (array_key_exists($i->value, $arr)) { + assertType('non-empty-array&hasOffset(2)', $arr); + } + } +}