On Sat, 11 Apr 2020 at 22:40, Gabriel Caruso <carusogabrie...@gmail.com>
wrote:

> On Tue, 7 Apr 2020 at 12:55, Claude Pache <claude.pa...@gmail.com> wrote:
>
>>
>> Le 5 avr. 2020 à 16:01, Gabriel Caruso <carusogabrie...@gmail.com> a
>> écrit :
>>
>> Hello, internals.
>>
>> Hereby you can find the RFC Document that I want to discuss as suggested
>> via https://externals.io/message/109416 and
>> https://externals.io/message/107990:
>>
>> https://wiki.php.net/rfc/magic-methods-signature
>>
>> Best regards,
>>
>> -- Gabriel Caruso
>>
>>
>> Hi,
>>
>
> Hello Claude,
>
>
>>
>> Regarding __construct(), etc. Since those methods are not supposed to
>> return anything, they ought to accept the `void` return pseudo-type in
>> their signature, which means exactly that: “do not return anything”. I
>> consider that the current behaviour (i.e., not accepting the `: void`
>> signature) as a bug, and was very surprised when I stumbled on it.
>>
>>
> I'll add to the RFC adding the possibility of typing the `__construct()`
> as `: void` as one of the changes.
>
>
>> ------------
>>
>> Also, I raise the following question:
>>
>> Should omitted types be added implicitly? I.e., if I write:  `function
>> __toString() { }` should the compiler interpret it as `function
>> __toString(): string { }` ? (Currently, it is not the case.)
>>
>> Doing so would raise BC concerns for some, uh, creative uses of magic
>> methods. On the other hand, that may help to add progressively type
>> informations on magic methods, since there is no need to synchronise
>> manually classes and subclasses (the compiler would do it automatically for
>> you). Concrete example here: https://3v4l.org/hTMvA
>>
>>
> This RFC does not cover analyzing the return of magic methods nor adding
> simplicity types. I'll add a note about it in the RFC.
>
>
>> —Claude
>>
>
> Thanks!
>

Btw, the problem that you reported about incompatible signatures will be
fixed on PHP 8: https://3v4l.org/hTMvA/rfc#git-php-master.

I've also added a test on the implementation ensuring the following:
https://3v4l.org/5010J/rfc#git-php-master.

Thanks!

-- Gabriel Caruso

Reply via email to