Skip to content

Fix infinite loop in recursive generics#5288

Merged
staabm merged 3 commits intophpstan:2.1.xfrom
staabm:endless
Mar 24, 2026
Merged

Fix infinite loop in recursive generics#5288
staabm merged 3 commits intophpstan:2.1.xfrom
staabm:endless

Conversation

@staabm
Copy link
Copy Markdown
Contributor

@staabm staabm commented Mar 24, 2026

closes phpstan/phpstan#13801

infinite stacktrace from running xDebug on the reproducer:

...
/Users/staabm/workspace/phpstan-src/src/Type/Generic/GenericObjectType.php:98
/Users/staabm/workspace/phpstan-src/src/Type/Generic/GenericObjectType.php:98
/Users/staabm/workspace/phpstan-src/src/Type/StaticType.php:108
/Users/staabm/workspace/phpstan-src/src/Type/Generic/GenericObjectType.php:98
/Users/staabm/workspace/phpstan-src/src/Type/Generic/GenericObjectType.php:98
/Users/staabm/workspace/phpstan-src/src/Type/StaticType.php:108
/Users/staabm/workspace/phpstan-src/src/Type/Generic/GenericObjectType.php:98
/Users/staabm/workspace/phpstan-src/src/Type/Generic/GenericObjectType.php:98
/Users/staabm/workspace/phpstan-src/src/Type/StaticType.php:108
/Users/staabm/workspace/phpstan-src/src/Type/Generic/GenericObjectType.php:98
/Users/staabm/workspace/phpstan-src/src/Type/Generic/GenericObjectType.php:98
/Users/staabm/workspace/phpstan-src/src/Type/StaticType.php:108
/Users/staabm/workspace/phpstan-src/src/Type/Generic/GenericObjectType.php:98
/Users/staabm/workspace/phpstan-src/src/Dependency/DependencyResolver.php:586
/Users/staabm/workspace/phpstan-src/src/Dependency/DependencyResolver.php:529
/Users/staabm/workspace/phpstan-src/src/Dependency/DependencyResolver.php:69
/Users/staabm/workspace/phpstan-src/src/Analyser/FileAnalyserCallback.php:208
/Users/staabm/workspace/phpstan-src/src/Analyser/Fiber/FiberNodeScopeResolver.php:42
/Users/staabm/workspace/phpstan-src/src/Analyser/Fiber/FiberNodeScopeResolver.php:38
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:540
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:410
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:368
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:962
/Users/staabm/workspace/phpstan-src/src/Analyser/NodeScopeResolver.php:280
/Users/staabm/workspace/phpstan-src/src/Analyser/FileAnalyser.php:119
/Users/staabm/workspace/phpstan-src/src/Analyser/Analyser.php:84
/Users/staabm/workspace/phpstan-src/tests/PHPStan/Analyser/AnalyserIntegrationTest.php:1520
/Users/staabm/workspace/phpstan-src/tests/PHPStan/Analyser/AnalyserIntegrationTest.php:1505

@staabm staabm changed the base branch from 2.2.x to 2.1.x March 24, 2026 07:24
@phpstan-bot
Copy link
Copy Markdown
Collaborator

You've opened the pull request against the latest branch 2.2.x. PHPStan 2.2 is not going to be released for months. If your code is relevant on 2.1.x and you want it to be released sooner, please rebase your pull request and change its target to 2.1.x.

@staabm staabm requested a review from VincentLanglet March 24, 2026 07:31
@staabm staabm marked this pull request as ready for review March 24, 2026 07:56
@phpstan-bot
Copy link
Copy Markdown
Collaborator

This pull request has been marked as ready for review.

@staabm staabm merged commit 9d54e3a into phpstan:2.1.x Mar 24, 2026
653 checks passed
@staabm staabm deleted the endless branch March 24, 2026 08:50
phpstan-bot pushed a commit to phpstan-bot/phpstan-src that referenced this pull request Apr 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Crash ("An error occurred") if recursive types are used.

3 participants