diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-02-17 19:58:57 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-02-17 20:48:09 -0700 |
| commit | 0bb22600bd7f1a99f3372f6c362fbfab24a2d6d4 (patch) | |
| tree | 802c85ddc0e2aa0989ddcd059fd1928cd71988b1 | |
| parent | feb4b01b38a13c85a7510a937cbdbede29f21764 (diff) | |
| download | zig-0bb22600bd7f1a99f3372f6c362fbfab24a2d6d4.tar.gz zig-0bb22600bd7f1a99f3372f6c362fbfab24a2d6d4.zip | |
Sema: fix typeinfo for enums with no declarations
| -rw-r--r-- | src/Sema.zig | 9 | ||||
| -rw-r--r-- | test/behavior/type_info.zig | 2 |
2 files changed, 3 insertions, 8 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index 2142540147..f939ebc912 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -10015,10 +10015,6 @@ fn typeInfoDecls( type_info_ty: Type, opt_namespace: ?*Module.Namespace, ) CompileError!Value { - const namespace = opt_namespace orelse return Value.initTag(.empty_array); - const decls_len = namespace.decls.count(); - if (decls_len == 0) return Value.initTag(.empty_array); - var decls_anon_decl = try block.startAnonDecl(src); defer decls_anon_decl.deinit(); @@ -10035,10 +10031,11 @@ fn typeInfoDecls( break :t try declaration_ty_decl.val.toType(&buffer).copy(decls_anon_decl.arena()); }; + const decls_len = if (opt_namespace) |ns| ns.decls.count() else 0; const decls_vals = try decls_anon_decl.arena().alloc(Value, decls_len); for (decls_vals) |*decls_val, i| { - const decl = namespace.decls.values()[i]; - const name = namespace.decls.keys()[i]; + const decl = opt_namespace.?.decls.values()[i]; + const name = opt_namespace.?.decls.keys()[i]; const name_val = v: { var anon_decl = try block.startAnonDecl(src); defer anon_decl.deinit(); diff --git a/test/behavior/type_info.zig b/test/behavior/type_info.zig index c8787262f0..fc5b268832 100644 --- a/test/behavior/type_info.zig +++ b/test/behavior/type_info.zig @@ -186,8 +186,6 @@ fn testErrorSet() !void { } test "type info: enum info" { - if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO - try testEnum(); comptime try testEnum(); } |
