Daniel Keep wrote:

Ary Borenszweig wrote:
New features:
 - Compile-time view (Window -> Show View -> Other -> D -> Compile-time
View): allows you to see things from the compiler point of view, which
applies some transformations to the source code. For example you can see
what happens when you do a foreach, when you invoke an "extension
method", when you do operator overloading; know what type has an auto
variable; how struct fields are accessed?; compiler optimizations. It
also removes conditionals that evaluate to false, and shows the results
of mixins in-place. As always, this is far from perfect and a lot of
things can be improved. For the lazies, I'll later upload a video about
this. :-)

I've found one limitation of this, and it's a really weird one.  It
seems that some combination of a double-quoted string inside a
backtick-quoted string in a statement under a static if causes this to
fall over and break it's legs.  The CT window just shows stuff like this:

!descent.core.dom.compilationu...@17c858d

I've attached the smallest test case I was able to make; hope it helps,
because this is just about the BEST thing ever.  As someone who makes
heavy use of meta-programming, this is fantastic.

Incidentally, the backtick-quoted string seems to make the editor VERY
confused; try starting a `` literal, and pressing Enter inside.  Now
imagine trying to write a big code mixin like that...

 - Now hovering over a mixin (over the "mixin" keyword) shows it's
result in a popup.

*Glee*

 - Now hovering over a function or template instance with ctrl+shift
shows it's compile-time result (with shift only: it's source code).

Indeed, it does!  This is SO awesome; now I don't have to muck about
with pragma(msg,...) and compile-time formatting to check and make sure
I'm not feeding the compiler garbage.

[snip]

Enjoy!

I've never been big on IDEs; I never felt that they had enough
advantages over a plain text editor to make up for the slowness and
restrictions.

But this is just so freaking awesome, I'm seriously considering moving
over to Descent for my D development.  It's just a pity I can't have my
Vim editing commands, too :P

 -- Daniel


Wow! Thanks for the joyful answer, Daniel. :-)

The attachment you sent doesn't compile, it gives a syntax error in the mixed content for the IsExpression (only a type is allowed, not "this."). Anyway, I'll change the "!descent.core.dom.compilationu...@17c858d" message to something like "Module foo has syntax or semantic errors due to mixins".

Reply via email to