commit 175893913defb637fd14ea5d2b49bbdf79a3222d (tree)
parent 9b91c76088e784bb622008623059eca5bbcd8700
Author: Andrew Kelley <superjoe30@gmail.com>
Date: Sat, 21 Oct 2017 13:14:10 -0400
fix compiler crash regarding type name of undefined
See #547
Diffstat:
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/codegen.cpp b/src/codegen.cpp
@@ -4554,6 +4554,7 @@ static void define_builtin_types(CodeGen *g) {
{
TypeTableEntry *entry = new_type_table_entry(TypeTableEntryIdUndefLit);
buf_init_from_str(&entry->name, "(undefined)");
+ entry->zero_bits = true;
g->builtin_types.entry_undef = entry;
}
{
diff --git a/test/cases/undefined.zig b/test/cases/undefined.zig
@@ -1,4 +1,5 @@
const assert = @import("std").debug.assert;
+const mem = @import("std").mem;
fn initStaticArray() -> [10]i32 {
var array: [10]i32 = undefined;
@@ -60,3 +61,8 @@ test "assign undefined to struct with method" {
assert(foo.x == 3);
}
}
+
+test "type name of undefined" {
+ const x = undefined;
+ assert(mem.eql(u8, @typeName(@typeOf(x)), "(undefined)"));
+}