12.6.7.10 CPP0009 - Extending Managed Type

Description

Extern classes annotated with cpp.ManagedType cannot currently be extended by non extern classes due to differences in how super constructors can be called in Haxe and C++. Attempting to subclass one of these extern classes with a non-extern class will generate this error.

Examples

The following example generates CPP0009.

@:semantics(value)
@:cpp.ManagedType
extern class Foo {}

class Bar extends Foo {
    public function new() {}
}

function main() {
    final b = new Bar();
}