Re: Confusing type mismatch error messages
| From: | ilija dot tovilo at me dot com | Date: | Wed, 20 Sep 2017 17:09:42 +0000 |
| Subject: | Re: Confusing type mismatch error messages | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-100721@lists.php.net to get a copy of this message | ||
> And actually, I still would be surprised to see such an error message.
This happens when you annotate your function incorrectly:
https://3v4l.org/CoUss
On 20 Sep 2017, 19:08 +0200, Christoph M. Becker <cmbecker69@gmx.de>, wrote:
> On 20.09.2017 at 18:54, Derick Rethans wrote:
>
> > On Wed, 20 Sep 2017, Christoph M. Becker wrote:
> >
> > > This issue has been filed as
> > > <https://bugs.php.net/65656>, and Adam
> > > submitted
> > > <https://github.com/php/php-src/pull/442> to fix that, but
> > > David hinted at the potential BC break, and Joe closed the PR later
> > > stating that such change would require an RFC.
> > >
> > > In my opinion, it would be sufficient to change the error message so
> > > that the canonical name of the type would be used, i.e.
> > >
bool and
> > > int, respectively, so the message above would read:
> > >
> > > […] must be an instance of boolean, bool given, […]
> >
> > Or why not:
> >
> > […] must be an instance of class boolean, boolean given, […]
> >
> > but I guess we then need to also use "trait" or "interface" as words
> > there too.
>
> That has been suggested by Adam, but 62 tests had to be modified,
> pointing out the magnitude of this change. And actually, I still would
> be surprised to see such an error message. It should not be possible to
> have a class/interface with the same name as a scalar type – and
> actually it is not.
>
> --
> Christoph M. Becker
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>