New Traits
Philippe Sigaud
philippe.sigaud at gmail.com
Wed May 16 10:08:32 PDT 2012
On Tue, May 15, 2012 at 11:09 PM, John Maschmeyer <jmaschme at gmail.com> wrote:
> On Tuesday, 15 May 2012 at 17:18:57 UTC, Philippe Sigaud wrote:
>>
>> Can you give us a simple example of what codeof produces? How does it
>> deal with functions overloads?
(examples)
> *************
Wonderful. I'm already salivating, er I mean I'm quite eager to get my
hands on it.
Jeebus, we will be able to do wonderful things with this. Code
extraction, parsing, AST modif and then code re-creation and mixin.
If you give it a module name (qualified with package name), does it
output the entire module code?
> I'm not sure how well this works with overloads. If you just use the symbol
> name, it works like other traits and returns the source code for the first
> match. I tried using the getOverloads trait and some alias magic, but all
> I've been able to do so far is get the prototype for overloads. I'm
> guessing it has something to do with using an alias instead of the actual
> symbol. I think we need a better way to reference an overloaded symbol.
Don't sweat it for now. It's a bit more uncommon.
what does this output?
int foo() { return 0;}
int foo(int i) { return i+1; }
void foo(double d) { }
foreach(i,overload; __traits(getOverloads, "foo"))
writeln(overload.codef);
More information about the Digitalmars-d
mailing list