Main5.hx 367 B

123456789101112131415
  1. class Main5 {
  2. static function fn2<T, R:T>(r:R, fn:()->T):T
  3. return null;
  4. static function main() {
  5. var a:Parent = fn2((null:Child), () -> new Parent());
  6. var a:GrandParent = fn2((null:Child), () -> new GrandParent());
  7. }
  8. }
  9. private class GrandParent {
  10. public function new() {}
  11. }
  12. private class Parent extends GrandParent {}
  13. private class Child extends Parent {}