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!

Reply via email to