Re: Re: Constructor property promotion for final properties
On Fri, Mar 21, 2025 at 9:45 AM Alexandru Pătrănescu <[email protected]>
wrote:
>
> On Fri, Mar 21, 2025 at 5:20 PM Daniel Scherzer <
> [email protected]> wrote:
>
>> On Fri, Mar 21, 2025 at 4:07 AM Tim Düsterhus <[email protected]> wrote:
>>
>>> Can you clarify if the following would result in constructor property
>>> promotion or not:
>>>
>>> class Foo {
>>> public function __construct(
>>> final string $bar,
>>> ) { }
>>> }
>>>
>>> Best regards
>>> Tim Düsterhus
>>>
>>
>> Yes, that would result in constructor property promotion. I'll need to
>> retarget the original PR for master, but at
>> https://github.com/php/php-src/pull/17861 you
>> can see in
>> Zend/tests/property_hooks/final_prop_promoted_2.phpt
a very similar test
>> case.
>>
>>
> I see. Good catch Tim.
> Daniel, you don't have this exact test case there.
>
> Initially, in 8.0, only a visibility keyword would trigger the property
> promotion logic.
> Later, in 8.1, also the readonly keyword would trigger this and make the
> property public, without the need to mention the visibility:
> https://3v4l.org/Co0gl
>
> Now we want the same for the final keyword, to trigger the property
> promotion without having a visibility keyword,
> because like readonly, it would not be applicable to a parameter, but just
> to a property?
>
> --
> Alex
>
Sorry, I completely missed that part. Yes, that should trigger promotion,
and if it doesn't then that is a bug in my implementation. When I retarget
the PR to master I'll also add a test case for promotion from just using
final
.
--Daniel
Thread (9 messages)