Hi,

On Wed, Feb 11, 2015 at 10:05 PM, Stanislav Malyshev <smalys...@gmail.com>
wrote:

> Hi!
>
> >     That one actually looks better to me, but: I'm not sure how
> annotation
> >     syntax is supposed to support expressions or closures,
> >
> >
> > keep AST.
>
> So we'd have a zval type that is the raw AST? Would it also be available
> to user functions or internal functions/classes? It's an intriguing
> concept but I'm not sure we appreciate all the consequences of it -
> adding new type is a rather big change as everything should support it.
> Or did you mean something else?
>

This is just an initial idea, and some research is required.
I don't propose to add new ZVAL type. AST may be just stored internally and
accesses through extended Reflection API.
This API may provide some classes to represent AST nodes.


> >     Is it some special form of annotation for this
> >     purpose only (meh)?
> >
> >
> > yes. some special attributes. requires/ensures/invariant
>
> Ah, so <<require()>> annotation would work different than any other type
> of annotation? Then I don't see any use for it to use annotation syntax
> (whatever it would be) - same syntax should mean same or at least
> similar function. Maybe I am still missing what you meant.
>

I don't understand you as well. It should be clear, that annotation should
allow declaration of any attributes, and some of them may be used for
different purposes. some for DbC.


>
> >     Oh, and <<>> syntax is *ugly* ;)
> >
> >
> > It's from HHVM. I don't like it as well, please, propose the better one.
>
> Pretty much every other one is better:
> Java and the followers, Python: @foo
> C#: [foo]
>

[foo] is already a legal syntax in PHP - array with constant foo.

Thanks. Dmitry.


>
> --
> Stas Malyshev
> smalys...@gmail.com
>

Reply via email to