From d324b1befa6c7f0fd5d18ffe45a98d104a62d8a0 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 8 Sep 2016 00:24:48 -0400 Subject: ability to infer parameter types --- src/codegen.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/codegen.cpp') diff --git a/src/codegen.cpp b/src/codegen.cpp index 78be609a96..7500010409 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -3597,6 +3597,7 @@ static LLVMValueRef gen_expr(CodeGen *g, AstNode *node) { case NodeTypeErrorType: case NodeTypeTypeLiteral: case NodeTypeArrayType: + case NodeTypeVarLiteral: // caught by constant expression eval codegen zig_unreachable(); case NodeTypeRoot: @@ -3815,6 +3816,7 @@ static LLVMValueRef gen_const_val(CodeGen *g, TypeTableEntry *type_entry, ConstE case TypeTableEntryIdVoid: case TypeTableEntryIdNamespace: case TypeTableEntryIdGenericFn: + case TypeTableEntryIdVar: zig_unreachable(); } @@ -4362,6 +4364,12 @@ static void define_builtin_types(CodeGen *g) { entry->deep_const = true; g->builtin_types.entry_null = entry; } + { + TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdVar); + buf_init_from_str(&entry->name, "(var)"); + entry->deep_const = true; + g->builtin_types.entry_var = entry; + } for (int int_size_i = 0; int_size_i < array_length(int_sizes_in_bits); int_size_i += 1) { int size_in_bits = int_sizes_in_bits[int_size_i]; @@ -5129,6 +5137,7 @@ static void get_c_type(CodeGen *g, TypeTableEntry *type_entry, Buf *out_buf) { case TypeTableEntryIdNumLitInt: case TypeTableEntryIdUndefLit: case TypeTableEntryIdNullLit: + case TypeTableEntryIdVar: zig_unreachable(); } } -- cgit v1.2.3