D - Two bugs for the price of one ...
- Mike Wynn (29/29) Feb 06 2003 the following compiles without warnings on dmd 0.52 alpha.
the following compiles without warnings on dmd 0.52 alpha.
I believe in the Java semantics, any class that has an abstract method must
be declared abstract AND can not be instantiated.
also the lack of a warning that there is a code path that may cause the
return to be undefined, may be grouped under the var not init-ed class of
complaints/enhancement that I know you are opposed to, but I do believe that
an extra return 0; that never gets called of a throw new Exception('how did
I get Here?'); is better, more robust and less error prone than a func that
just falls out the end.
class Base
{
abstract int foo();
}
class Derv : Base
{
}
int func( int a )
{
if ( a < 5 ) { return (new Derv()).foo(); }
}
int main( char[][] args )
{
return func( 2 ) + func( 7 );
}
as expected the result of running this code is `Error: Access Violation`
(might be nice if this was Error: abstract func called, or an abstract
method called exception, not that you should ever be able to create an
instance of an abstract class)
Mike.
Feb 06 2003








"Mike Wynn" <mike.wynn l8night.co.uk>