11.7 자동 빌딩(Auto Build)

11.7 자동 빌딩(Auto Build)

@:autoBuild 메타데이터는 타입 정의에 적용되어, 그것을 상속하는 모든 타입에서 자동으로 특정 빌더 매크로를 호출합니다. @:build와 달리 상속 관계를 통해 자동으로 전파됩니다.

import haxe.macro.Context;
import haxe.macro.Expr;

class Base {
  @:autoBuild(Main.hello())
  public function new() {}
}

class Child extends Base {
  public function new() { super(); }
}

class Main {
  public static macro function hello():Expr {
    return Context.getLocalType();
  }

  static function main() {
    var c = new Child();
    trace(c); // Child
  }
}

@:autoBuild가 붙은 클래스를 상속하는 모든 타입은 그 빌더 매크로를 자동으로 실행합니다.

출처: Auto build

더 알아보기