// EXTRA_OBJC_SOURCES: objc_super_call.m // REQUIRED_ARGS: -L-framework -LFoundation import core.attribute : selector; extern (Objective-C) extern class NSObject { void release() @selector("release"); } // Defined in `runnable/extra-files/objc_super_call.m` extern (Objective-C) extern class Foo : NSObject { // returns 3 int foo() @selector("foo"); } extern (Objective-C) class Bar : Foo { static Bar alloc() @selector("alloc"); Bar init() @selector("init"); override int foo() @selector("foo") { return super.foo() + 1; } } void main() { auto bar = Bar.alloc.init; scope (exit) bar.release(); assert(bar.foo == 4); }