On 4/6/2012 12:17 AM, Kapps wrote:
I like it for the most part. One thing I'd like to see is placing multiple
attributes both by using multiple @attr()'s, and by using comma separated
identifier/expression pairs inside a single @attr. In other words, the following
two declarations would be identical.

@attr(Description = "Blah", ReadOnly)
int ID;

@attr(Description = "Blah")
@attr(ReadOnly)
int ID;

Yes, that makes sense.

My only concerns:

First, @attr() is a little verbose / not exactly pretty. This isn't really a big
issue, since attributes aren't exactly piled on and it makes it easy to tell
what's going on. It is a little uglier than in other languages however.

Could do:

   [[name = value]]

I suppose. Not sure what's better.


Secondly, from what I can tell it's an arbitrary key value combo. What would
happen if you're working on a larger project and two unrelated libraries try to
use the same attribute name to mean different things? With the module system
this issue doesn't exist since you have to import it and can
selectively/privately do so, but from what I understand the method you're
proposing doesn't declare the attribute itself at all. Am I just
misunderstanding this part?

Good question. I don't have experience using attributes, so I don't know if this would be a problem. Keep in mind that the attribute lookup will only be done for a particular symbol, there won't be any global lookup.

Reply via email to