Hi Chris-

You might also find some helpful information here:

http://wiki.gotpike.org/PikeDevel/Annotations

There are one or two missing features in annotations, one of which is (I think) the lack of ability to add an annotation to a top level class (one that isn't identified by the class syntax. There might be a discussion about this in the archives; I think the conversation was left at needing to come up with an appropriate syntax for it.

Hope this is helpful!

Bill

On 2024-02-15 08:54, Chris Angelico wrote:
On Thu, 15 Feb 2024 at 23:39, Henrik Grubbström (Lysator) @ Pike (-)
developers forum <[email protected]> wrote:
> I'm trying to make good use of annotations, but all the existing ones
> are in cmod files, and I'm trying to work out how best to write them
> in Pike. My goal is to have an annotation that can be parameterized,
> something like this:
>
> class Anno(string label) {
>     inherit Pike.Annotation;
>     @constant;
> }
>
> @Anno("foobar"):
> void some_func() { }

The above is supposed to work.

> But while this does result in the annotation itself showing up, the
> label on that annotation doesn't.

Try having the Anno class in a separate file.

Ah yes, now it works. Thanks. Didn't think to try that.

As long as Anno itself is added as a constant, the parameterized
versions work correctly.

> What's the intended way to create parameterized annotations?

This seems to be a compiler bug.

Thanks. Not a major issue since there's a workaround (and I'll usually
have them in separate files anyway).

ChrisA

Reply via email to