Re: [RFC] [Discussion] Bound-Erased Generic Types
| From: | Ben Ramsey | Date: | Mon, 11 May 2026 18:21:45 +0000 |
| Subject: | Re: [RFC] [Discussion] Bound-Erased Generic Types | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-130836@lists.php.net to get a copy of this message | ||
On 5/11/26 13:03, Ben Ramsey wrote:
On 5/11/26 03:38, Brent Roose wrote:Apologies to Seifeddine. I forgot they maintain Mago. :-) But my question still stands for PHPStan, Psalm, and others. Cheers, Ben2. Regarding the consistent specification, you may know I work at PhpStorm, so I'd like to highlight how much of a pain the current situation is for us (and also other static analysis vendors). There is no consistency in the details. We have a huge backlog of issues regarding generic type checking that are unsolvable without a proper and consistent spec. PHPStan does X, Psalm does Y, Mago does Z; and most developers expect PhpStorm to support everything. Furthermore, performance is much more a concern for us, as we run our type checker in real time. We would love to improve our generic type support, but a proper spec is required to ensure consistency and a clear path forward. Full disclosure, we tried bringing all static analysis vendors together five or six years ago to create this consistent spec ourselves. These efforts failed, and the only viable option we see is if the spec came from internals.Can you share some of the reasons these efforts failed? If each of these static analysis tools experience problems with conflicting behavior and support, then it seems to me that it behooves all of them to work together to develop a consistent spec. Would PHPStan, Psalm, Mago, etc. be interested in throwing their support behind this RFC (or one like it)?