commit ea5cedced1aa6bb5e1c1a07fcd16c5bed08c971f (tree)
parent 4bac22e88898158fc49e69db5bbe26a324797d68
Author: Andrew Kelley <andrew@ziglang.org>
Date: Sat, 2 Mar 2019 14:31:04 -0500
fix @typeName on slices
closes #2026
Diffstat:
3 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/analyze.cpp b/src/analyze.cpp
@@ -6857,7 +6857,9 @@ void emit_error_notes_for_ref_stack(CodeGen *g, ErrorMsg *msg) {
}
Buf *type_bare_name(ZigType *type_entry) {
- if (is_container(type_entry)) {
+ if (is_slice(type_entry)) {
+ return &type_entry->name;
+ } else if (is_container(type_entry)) {
return get_container_scope(type_entry)->bare_name;
} else if (type_entry->id == ZigTypeIdOpaque) {
return type_entry->data.opaque.bare_name;
diff --git a/test/stage1/behavior.zig b/test/stage1/behavior.zig
@@ -80,6 +80,7 @@ comptime {
_ = @import("behavior/truncate.zig");
_ = @import("behavior/try.zig");
_ = @import("behavior/type_info.zig");
+ _ = @import("behavior/typename.zig");
_ = @import("behavior/undefined.zig");
_ = @import("behavior/underscore.zig");
_ = @import("behavior/union.zig");
diff --git a/test/stage1/behavior/typename.zig b/test/stage1/behavior/typename.zig
@@ -0,0 +1,7 @@
+const std = @import("std");
+const expect = std.testing.expect;
+const expectEqualSlices = std.testing.expectEqualSlices;
+
+test "slice" {
+ expectEqualSlices(u8, "[]u8", @typeName([]u8));
+}