DIP6: Attributes
Daniel Keep
daniel.keep.lists at gmail.com
Tue Aug 4 00:22:50 PDT 2009
Don wrote:
> ...
>
> A question: in C#/Java, can you have annotations on function pointer and
> delegate declarations?
>
> void foo( int delegate(int) pure dg) {
> ...
> }
> What would this look like with annotations?
Well, Java doesn't HAVE delegates and C# doesn't (AFAIK) allow you to
define them inline; they have a special declaration syntax that can't be
used in an expression.
C# would probably look something like:
namespace Blech
{
[Pure]
public delegate int Moo(int);
public class Urk
{
public static void foo(Moo dg) {
...
}
}
}
> (The underlying question is, how do annotations interact with the type
> system?)
I don't think they form part of the type; they're just sort of attached
to that particular declaration.
>> To answer Don's point, there is nothing saying that the compiler can't
>> read attributes and change its behavior. Of course, those would have
>> to be builtin attributes.
>
> Yes, but then they're just keywords, with an @ in front. You'd just be
> kidding yourself if you think you've reduced the keyword count.
I suspect the reasoning goes like this:
* I want attributes. Walter doesn't see the use.
* Walter complains about adding keywords.
* I can make keywords look like attributes, and then I get attributes!
:P
>> My opinion on removing existing keywords is -- don't. There's little
>> to no gain. Let that ship sail, and concentrate on future keyword
>> proposals.
>>
>> -Steve
More information about the Digitalmars-d
mailing list