Main.hx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. class Main {
  2. static function main() {
  3. trace("Foo");
  4. trace(Foo1.macros);
  5. trace(Foo2.macros);
  6. trace(Foo3.macros);
  7. trace(Foo4.macros);
  8. trace("Bar");
  9. trace(Bar1.macros);
  10. trace(Bar2.macros);
  11. trace(Bar3.macros);
  12. trace("Baz");
  13. trace(Baz1.macros);
  14. trace(Baz2.macros);
  15. trace(Baz3.macros);
  16. }
  17. }
  18. @:autoBuild(Macro.build("I1"))
  19. interface I1 {}
  20. @:autoBuild(Macro.build("I2"))
  21. interface I2 {}
  22. @:autoBuild(Macro.build("auto Foo1 (1)"))
  23. @:autoBuild(Macro.build("auto Foo1 (2)"))
  24. @:build(Macro.build("Foo1"))
  25. class Foo1 implements I1 implements I2 {}
  26. @:build(Macro.build("Foo2"))
  27. class Foo2 extends Foo1 {}
  28. @:build(Macro.build("Foo3 (1)"))
  29. @:build(Macro.build("Foo3 (2)"))
  30. class Foo3 extends Foo2 {}
  31. @:build(Macro.build("Foo4"))
  32. class Foo4 extends Foo3 {}
  33. class Bar1 implements I2 implements I1 {}
  34. class Bar2 extends Bar1 {}
  35. class Bar3 extends Bar2 {}
  36. @:autoBuild(Macro.build("I3"))
  37. interface I3 extends I1 {}
  38. class Baz1 implements I3 implements I2 {}
  39. class Baz2 extends Baz1 {}
  40. class Baz3 extends Baz2 {}