Я пытаюсь использовать макросы для преобразования некоторых объявлений переменных из этого:
function test():Void {
var someComp:Component = __SOME_MACRO__();
// Or...
@getCompById var someComp:Component;
// Or even simpler...
getCompById(someComp, Component); //do some fancy macro magic...
// Also, if it's not possible/easy with a variable ...
getCompById("someComp", Component); //with a string of the variable name.
}
... к этому:
function test() {
var someComp:Component = cast container.getCompById("someComp");
}
Я больше склоняюсь к третьему варианту (более короткий синтаксис, те же результаты).
Но я понятия не имею, как написать макрос (должен ли он принимать строку в качестве параметра? выражение?) и как правильно вернуть это как выражение макроса.
Это (сломанный) код, который у меня есть до сих пор:
macro static function getCompById(someVar:Expr, typeVar:Expr) {
return macro {
var someVar:typeVar = cast container.getCompById("someVar");
};
}
Любые идеи?