1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
import haxe.macro.Expr.Field;
import haxe.macro.Context;
class Macro {
public static macro function buildMain(): Array<Field> {
final pos = Context.currentPos();
final bf = Context.getBuildFields();
final type = Context.getType('Test2');
switch (type) {
case TInst(ctRef, _):
final ct = ctRef.get();
try {
final ctor = ct.constructor.get().expr();
} catch (e: Dynamic) {
}
Context.warning('This does not show if printStuff() calls error() or reportError()', pos);
case _:
}
return bf;
}
public static macro function buildTest2(): Array<Field> {
final pos = Context.currentPos();
final bf = Context.getBuildFields();
// Use error() or reportError() here -> Main Completion does not work, Eval crashes
// Use warning() or info() -> Everything works as expected
Context.reportError('Crashes HERE in eval.vm.callMacroApi', pos);
return bf;
}
}
|