import cs.system.WeakReference_1; class Main { public static function main() { new Test(new A()); } } @:nativeGen class Test { public function new(a:T) { test(function() return new WeakReference_1(a)); } function test(cb:()->WeakReference_1):Void {} } class A { public function new() {} }