From 9eb5db84ab5cc3b112f33b2f387562e2440c8410 Mon Sep 17 00:00:00 2001 From: Nathan Braswell Date: Mon, 7 Mar 2016 20:17:23 -0500 Subject: [PATCH] Fixed another, 50 tests passing --- stdlib/ast_transformation.krak | 2 +- stdlib/c_generator.krak | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/stdlib/ast_transformation.krak b/stdlib/ast_transformation.krak index 032d39e..2169bfb 100644 --- a/stdlib/ast_transformation.krak +++ b/stdlib/ast_transformation.krak @@ -950,7 +950,7 @@ fun unify_type(template_type: *tree, param_type: *type, new_map: *mapparameter_types.size) return; } - for (var i = 0; i < template_function_types.size; i++;) + for (var i = 0; i < template_function_types.size-1; i++;) unify_type(template_function_types[i], param_type->parameter_types[i], new_map, template_replacements) unify_type(template_function_types.last(), param_type->return_type, new_map, template_replacements) } else { diff --git a/stdlib/c_generator.krak b/stdlib/c_generator.krak index a60014c..96f716e 100644 --- a/stdlib/c_generator.krak +++ b/stdlib/c_generator.krak @@ -598,7 +598,10 @@ obj c_generator (Object) { call_string.value = "" } else { var func_type = get_ast_type(node->function_call.func) - call_string.pre += string("if (")+func_name+".data) " + pre_call + " = ((" + type_to_c(func_type) + "_with_data) "+func_name+".func)("+func_name +".data," + call_string.value + ");\n" + call_string.pre += string("if (")+func_name+".data) " + pre_call + " = ((" + type_to_c(func_type) + "_with_data) "+func_name+".func)("+func_name +".data" + if (call_string.value != "") + call_string.pre += string(",") + call_string.value + call_string.pre += ");\n" call_string.pre += string("else ") + pre_call + " = ((" + type_to_c(func_type) + "_without_data) " + func_name+".func)(" + call_string.value + ");\n" call_string.value = pre_call }