Let’s say you have a function that prints a compile-time type:
public static macro function printType(expr:Expr):Expr {
trace(Context.typeof(expr));
return macro null;
}
Plus a typedef:
typedef Time = Date;
What happens when these things interact?
printType(new Time(0, 0, 0, 0, 0, 0)); //Date
var time:Time = Date.now();
printType(time); //Time
var time = new Time(0, 0, 0, 0, 0, 0);
printType(time); //Date
printType((Date.now():Time)); //Time
I feel like all of these should actually print “Time.” Is there any way to make that happen?