`abstract` attribute should be disallowed in `interface`s in any way as it does nothing except confuses people. This code should NOT compile: --- interface I { abstract void f(); // should be error abstract { void g(); } // should be error abstract: void h(); // should be error } ---
interface I{void a();} static assert(__traits(isAbstractFunction, I.a));