9.2.2 Constant Expressions

A macro can be declared to expect constant arguments:

class Main {
  static public function main() {
    const("foo", 1, 1.5, true);
  }

  macro static function const(s:String, i:Int, f:Float, b:Bool) {
    trace(s);
    trace(i);
    trace(f);
    trace(b);
    return macro null;
  }
}

With these, it is not necessary to detour over expressions as the compiler can use the provided constants directly.