Main.hx 528 B

1234567891011121314151617181920212223242526272829303132
  1. #if macro
  2. import haxe.macro.Context;
  3. #end
  4. #if !macro
  5. class Main {
  6. public static function main() {
  7. final array:MyArray<String> = ["hello", "world"];
  8. }
  9. }
  10. #end
  11. #if !macro
  12. @:build(MyMacro.build())
  13. #end
  14. abstract MyArray<T>(Array<T>) from Array<T> to Iterable<T> {}
  15. class MyMacro {
  16. #if macro
  17. static function build() {
  18. switch (Context.getLocalType()) {
  19. case TInst(_.get() => type, _):
  20. switch (type.kind) {
  21. case KAbstractImpl(_.get() => abstractType):
  22. default:
  23. }
  24. default:
  25. }
  26. return null;
  27. }
  28. #end
  29. }