class A {} @:nativeGen class B {} class C { var a:A; var b:B; function f():A return null; } class D extends C { override function f():A return null; }