They are still not classes

On Mon, 1 Oct 2018, 14:24 Marcos Passos, <marcospassos....@gmail.com> wrote:

> Rowan, thank you for sharing your thoughts.
>
> You can also see it as a language construct that expects a type at the
> left-hand side of the name resolution operator. In that sense, primitive
> types are perfectly valid.
>
> Regards,
> Marcos
>
> Em seg, 1 de out de 2018 às 05:45, Rowan Collins <rowan.coll...@gmail.com>
> escreveu:
>
> > On Mon, 1 Oct 2018 at 00:30, Marcos Passos <marcospassos....@gmail.com>
> > wrote:
> >
> >> Currently, class name resolution supports all types except an array.
> >> https://3v4l.org/OXFMW
> >>
> >
> > It seems to me that the bug is allowing an expression like "int::class"
> to
> > resolve, when "int" is no longer a legal class name.
> >
> > I suspect the reason "array::class" doesn't work is that it was already a
> > reserved word in PHP 5, whereas other types were legal class names. In
> PHP
> > 5, "int::class" can plausibly resolve to the name of an actual class, but
> > in PHP 7, it can't, but clearly this part of the grammar wasn't updated
> to
> > reflect that.
> >
> > The parser is being too forgiving here, I think, and should complain if
> > the word before :: is not a valid class name.
> >
> > Regards,
> > --
> > Rowan Collins
> > [IMSoP]
> >
>

Reply via email to