From 9b675fdf247f0a213802e2765f52d121aacfaafb Mon Sep 17 00:00:00 2001 From: USAMI Kenta Date: Sun, 30 Oct 2022 05:08:22 +0900 Subject: [PATCH 1/2] Add noreturn as PseudoTypeClass --- src/PhpDoc/TypeNodeResolver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PhpDoc/TypeNodeResolver.php b/src/PhpDoc/TypeNodeResolver.php index 84862b88a7..0ed2af0adf 100644 --- a/src/PhpDoc/TypeNodeResolver.php +++ b/src/PhpDoc/TypeNodeResolver.php @@ -329,6 +329,7 @@ private function resolveIdentifierTypeNode(IdentifierTypeNode $typeNode, NameSco return new IntersectionType([new ObjectWithoutClassType(), new CallableType()]); case 'never': + case 'noreturn': $type = $this->tryResolvePseudoTypeClassType($typeNode, $nameScope); if ($type !== null) { @@ -340,7 +341,6 @@ private function resolveIdentifierTypeNode(IdentifierTypeNode $typeNode, NameSco case 'never-return': case 'never-returns': case 'no-return': - case 'noreturn': return new NeverType(true); case 'list': From ac334b869a453181e2b0b57f82b3ae79c1233194 Mon Sep 17 00:00:00 2001 From: USAMI Kenta Date: Sun, 30 Oct 2022 16:05:30 +0900 Subject: [PATCH 2/2] Add test for noreturn type/class --- .../Analyser/NodeScopeResolverTest.php | 1 + tests/PHPStan/Analyser/data/bug-8242.php | 60 +++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 tests/PHPStan/Analyser/data/bug-8242.php diff --git a/tests/PHPStan/Analyser/NodeScopeResolverTest.php b/tests/PHPStan/Analyser/NodeScopeResolverTest.php index 4d36b44222..a575ad12e5 100644 --- a/tests/PHPStan/Analyser/NodeScopeResolverTest.php +++ b/tests/PHPStan/Analyser/NodeScopeResolverTest.php @@ -1114,6 +1114,7 @@ public function dataFileAsserts(): iterable yield from $this->gatherAssertTypes(__DIR__ . '/data/callable-string.php'); yield from $this->gatherAssertTypes(__DIR__ . '/data/bug-8225.php'); + yield from $this->gatherAssertTypes(__DIR__ . '/data/bug-8242.php'); } /** diff --git a/tests/PHPStan/Analyser/data/bug-8242.php b/tests/PHPStan/Analyser/data/bug-8242.php new file mode 100644 index 0000000000..3c14ddc1f8 --- /dev/null +++ b/tests/PHPStan/Analyser/data/bug-8242.php @@ -0,0 +1,60 @@ +