Main.hx 494 B

123456789101112131415161718192021
  1. class Main {
  2. static function test() {
  3. function fail(msg) {
  4. Sys.println(msg);
  5. Sys.exit(1);
  6. }
  7. haxe.macro.Context.onAfterInitMacros(() -> {
  8. var t = haxe.macro.Context.getType("A");
  9. switch (t) {
  10. case TAbstract(a, _):
  11. var hasTestMeta = Lambda.exists(a.get().meta.get(), function(m) return m.name == ":test");
  12. if (!hasTestMeta) {
  13. fail("Abstract implementation class has no @:test metadata");
  14. }
  15. case _:
  16. fail("Should be abstract");
  17. }
  18. });
  19. }
  20. }