Builder.hx 453 B

1234567891011121314151617181920212223242526
  1. package builder;
  2. #if macro
  3. import haxe.macro.Context;
  4. import haxe.macro.Expr;
  5. import haxe.macro.Type;
  6. #end
  7. #if !macro
  8. @:autoBuild(builder.Builder.build())
  9. #end
  10. interface IBuilder {}
  11. class Builder {
  12. macro static public function build():Array<Field> {
  13. var cCur = Context.getLocalClass().get();
  14. function loop(c:ClassType) {
  15. var fs = c.fields.get();
  16. if (c.superClass != null) loop(c.superClass.t.get());
  17. }
  18. loop(cCur);
  19. return null;
  20. }
  21. }