/* TEST_OUTPUT: --- fail_compilation/test13867.d(12): Error: function `void test13867.X.blah()` does not override any function, did you mean to override `extern (C++) void test13867.Base.blah()`? fail_compilation/test13867.d(19): Error: function `void test13867.Z.blah()` does not override any function, did you mean to override `extern (C++) void test13867.Base.blah()`? --- */ extern (C++) class Base { void blah() {} } class X : Base { override void blah();//Error } extern (C++) class Y : Base { override void blah(){} } class Z : Base { alias blah = typeof(super).blah; override void blah(){}//Error } class O : Base { extern (C++) override void blah(){} } extern (C++) class OK : Base { alias blah = typeof(super).blah; override void blah(){} } void main() { scope b = new Base(); b.blah(); scope x = new X(); x.blah(); scope y = new Y(); y.blah(); scope o = new O(); o.blah(); scope z = new Z(); z.blah(); }