|
@@ -687,13 +687,14 @@ struct CallExpr: Expr{
|
|
|
ctx->emit(OP_BUILD_TUPLE_UNPACK, (int)args.size(), line);
|
|
ctx->emit(OP_BUILD_TUPLE_UNPACK, (int)args.size(), line);
|
|
|
|
|
|
|
|
for(auto& item: kwargs){
|
|
for(auto& item: kwargs){
|
|
|
- item.second->emit(ctx);
|
|
|
|
|
if(item.second->is_starred()){
|
|
if(item.second->is_starred()){
|
|
|
if(item.second->star_level() != 2) FATAL_ERROR();
|
|
if(item.second->star_level() != 2) FATAL_ERROR();
|
|
|
|
|
+ item.second->emit(ctx);
|
|
|
}else{
|
|
}else{
|
|
|
// k=v
|
|
// k=v
|
|
|
int index = ctx->add_const(py_var(ctx->vm, item.first));
|
|
int index = ctx->add_const(py_var(ctx->vm, item.first));
|
|
|
ctx->emit(OP_LOAD_CONST, index, line);
|
|
ctx->emit(OP_LOAD_CONST, index, line);
|
|
|
|
|
+ item.second->emit(ctx);
|
|
|
ctx->emit(OP_BUILD_TUPLE, 2, line);
|
|
ctx->emit(OP_BUILD_TUPLE, 2, line);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|