optional has no effect(?)
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=2727
Reported by Martin Stjernholm mast@roxen.com
I didn't expect a type error in this program:
class X
{
optional void foo();
X x();
}
class Y
{
X x() {return Y();} // Line 9
}
int main() {}
In both 7.2 and 7.3, I get:
foo.pike:9:Wrong return type.
foo.pike:9:Expected: object(implements 65586)
foo.pike:9:Got : object(is 65587)
foo.pike:9:Missing identifier "foo".
foo.pike:10:Class definition failed.
Pike: Failed to compile script:
Compilation failed.
I thought that the "optional" modifier was supposed to prevent exactly this situation.