Jason House escribió:
Ary Borenszweig Wrote:
Jarrett Billingsley wrote:
On Wed, Aug 12, 2009 at 9:18 AM, Ary Borenszweig<a...@esperanto.org.ar> wrote:
This compiles and runs in D2:
--
import std.stdio;
auto foo() {
return 1;
}
void main() {
writefln("%s", foo());
}
--
Since when a non-templated function can have its return type deduced? :)
Cool. I'm testing this and it really does seem to be non-templated.
So of course, the first thing I tried was this:
class A
{
auto foo() { return 0; }
}
class B : A
{
auto foo() { return 5; }
}
but DMD crashes. :P
Now that it also works in Descent I can see it's because function
overloading is treated before function return type inference, and the
return types for the functions at those moments are null...
When can we look forward to Descent for D2? :)
The lexer and parser are already ported to 2.031 (the latest), and also
everything related to that (the public AST, the formatter, the
compile-time view, etc.). But I still need to finish porting the
semantic analysis. 10 c files remaining. ;-)
I could release now with the lexer and parser, but sometimes there are
null pointer exceptions and illegal state exceptions because of this
lack of ported semantic. I advance little by little each day (or each
"free time that I feel like making something"), maybe in some weeks or
months I'll finish.
Also, what kind of porting issues did you have? How could it be made simpler?
I'm assuming that whatever makes your work easier also helps others customizing
their applications for D2.
I copied the diff of one part, saw the other part looked the same, so I
copied the Java version insted of the C++ version (easier to port,
because I don't have to replace "->" with "." and remove the "*" for
pointers)... but it looked almost the same, but wasn't the same.
Anyway, it doesn't matter much if I make mistakes when porting. When I
compile a big project like phobos, errors like that appear right away,
and with that I know where the error is and where to look for a solution. :)