2016-07-17 3 views
1

Контекст - это макрос. Моя цель состоит в том, чтобы генерироватьHaxe генерирует супервызов с аргументами

super(arg1, arg2, arg3) 

Что у меня есть:

Array<FunctionArg> => [{ meta => null, name => foo, type => TPath({ name => StdTypes, pack => [], params => [], sub => Int }), opt => null, value => null },{ meta => null, name => bar, type => TPath({ name => StdTypes, pack => [], params => [], sub => Int }), opt => null, value => null }] 

Я попытался macro super($a{ancestorArgs}), но это просто глупо, так как $a ожидает Array<Expr>.

У меня нет идей.

Спасибо!

ответ

2

Try:

var args = [ for (arg in funcArgs) macro $i { arg.name } ]; 
func.expr = macro 
{ 
    super($a{ args }); 
};