Hi Matteo, On Thu, Jan 30, 2025 at 1:07 PM Matteo Beccati <p...@beccati.com> wrote:
> > I reckon it's a nice thing to have, but to be honest I think handling it > just during static analysis would be the best approach. Also there would > be no need for a (void) cast to suppress the warning. > > We also discussed if this should be part of the core language or something that is only supported by tooling. During the discussion we looked for existing context and at what was said around #[Override] [1] at the time. I won't repeat Tim's point from last year here for brevity, but I think the same ideas apply. Having the core language offer a way to tag a function as “return value matters” would also allow library and tool authors like Psalm and PHPStan (free & pro versions) to add and work with these tags. Not having each tool to curate its lists of functions where the return value is considered “important”, I think, would be an improvement overall. It also enables library authors to suggest it to these tools in a standardized way. PHPStorm (and EA-Extended inspections plugin) also ship with lists of functions they warn about that are more extensive than what we propose here, but they also only work for core as there is so no standardized way yet, that I'm aware of, to tell PHPStorm (or any LSP) about this type of requirement. The `void` cast or the `$_` discussed currently would be a `/** @phpstan-suppress UnusedReturnValue */` (or something like that) in PHPStan. So there are various ways of expressing f this concept in syntax, and we tried to find something that doesn't add BC issues to PHP in any way. There has always been overlap between what SA is doing for its users and what PHP is doing for all users of the language. From type checking (static vs. runtime) to warnings and deprecations, things are both checked at runtime and at CI time. PHP its self is more conservative and has more BC focus than the tools, of course, but I think this is a case where the attribute would help with creating a common language. Kind Regards, Volker [1] https://externals.io/message/120233#120432 -- Volker Dusch Head of Engineering Tideways GmbH Königswinterer Str. 116 53227 Bonn https://tideways.io/imprint Sitz der Gesellschaft: Bonn Geschäftsführer: Benjamin Außenhofer (geb. Eberlei) Registergericht: Amtsgericht Bonn, HRB 22127