@@ -649,10 +649,10 @@ fn (mut g Gen) comptime_for(node ast.ComptimeFor) {
649649 }
650650 if method.params.len < 2 {
651651 // 0 or 1 (the receiver) args
652- g.writeln ('\t ${node .val_var }.args = builtin____new_array_with_default(0, 0, sizeof(MethodParam ), 0);' )
652+ g.writeln ('\t ${node .val_var }.args = builtin____new_array_with_default(0, 0, sizeof(FunctionParam ), 0);' )
653653 } else {
654654 len := method.params.len - 1
655- g.write ('\t ${node .val_var }.args = builtin__new_array_from_c_array(${len }, ${len }, sizeof(MethodParam ), _MOV((MethodParam [${len }]){' )
655+ g.write ('\t ${node .val_var }.args = builtin__new_array_from_c_array(${len }, ${len }, sizeof(FunctionParam ), _MOV((FunctionParam [${len }]){' )
656656 // Skip receiver arg
657657 for j, arg in method.params[1 ..] {
658658 typ := arg.typ.idx ()
@@ -841,12 +841,12 @@ fn (mut g Gen) comptime_for(node ast.ComptimeFor) {
841841 }
842842 }
843843 } else if node.kind == .params {
844- method := g.comptime.comptime_for_method
845-
846- if method.params.len > 0 {
847- g.writeln ('\t MethodParam ${node .val_var } = {0};' )
844+ func := if sym.info is ast.FnType { & sym.info.func } else { g.comptime.comptime_for_method }
845+ if func.params.len > 0 {
846+ g.writeln ('\t FunctionParam ${node .val_var } = {0};' )
848847 }
849- for param in method.params[1 ..] {
848+ params := if func.is_method { func.params[1 ..] } else { func.params }
849+ for param in params {
850850 g.push_new_comptime_info ()
851851 g.comptime.inside_comptime_for = true
852852 g.comptime.comptime_for_method_param_var = node.val_var
0 commit comments