toHash => pure, nothrow, const, @safe
Steven Schveighoffer
schveiguy at yahoo.com
Wed Mar 14 06:40:33 PDT 2012
On Wed, 14 Mar 2012 09:27:08 -0400, Martin Nowak <dawg at dawgfoto.de> wrote:
>> In essence, when @type is encountered the compiler looks at
>> TypeInfo_Struct (in object.di) for the equivalent xfuncname. Then uses
>> the attributes of that function pointer (and also the parameter
>> types/count) to compile the given method.
>>
> Why would you want to add explicit annotation for implicit
> TypeInfo_Struct methods?
Because right now, it's a guessing game of whether you wanted an operation
to be part of the typeinfo's interface. And many times, the compiler
guesses wrong. I've seen countless posts on d.learn saying "why won't
AA's call my opEquals or opHash function?"
With explicit annotation, you have instructed the compiler "I expect this
to be in TypeInfo," so it can take the appropriate actions if it doesn't
match.
> I think @type is a very interesting idea if combined with a
> string->method lookup in
> TypeInfo_Struct, but this wouldn't allow for static type checking.
Yes it would. It has access to TypeInfo_Struct in object.di, so it can
figure out what the signature should be.
-Steve
More information about the Digitalmars-d
mailing list