DMD 2.050beta compiles and runs this code with no errors, but bar() is not actually abstract: abstract class Foo { abstract void bar() {} } void main() {} What I expect: A compile-time error, something like: error(2): abstract method 'bar' of class 'Foo' has a body. See also bug 2946
http://www.digitalmars.com/d/1.0/attribute.html#abstract http://www.digitalmars.com/d/2.0/attribute.html#abstract "Functions declared as abstract can still have function bodies. This is so that even though they must be overridden, they can still provide ‘base class functionality.’"