I'm trying to write some code that finds all the members of a class that have a particular user defined attribute. My current attempt is at https://github.com/todayman/d_template_experiments/tree/8fccd27d7d5557ec6e2f0614374cf5f79fe80b4c

I would like to have a static method that returns an array of strings of the names of the members with the "@Sync" attribute. I use the allMembers trait to get the list of strings, then try to filter out the ones I want. There are problems when I convert from the string to a symbol / something to get the attributes. Right now, I'm getting errors like:


metadata.d(158): Error: template instance doesFieldSync_imp!(_hash) cannot use 
local '_hash' as parameter to non-global template doesFieldSync_imp(alias 
field)()

which I understand is related to
http://d.puremagic.com/issues/show_bug.cgi?id=5710

and

metadata.d(160): Error: first argument is not a symbol
from
_traits(getAttributes, mxin("FileData."~key))

What's a good way to work around these? I'm also open to entirely different ways of doing this.

Thanks,
Paul

Reply via email to