zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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:
Msrc/analyze.cpp | 4+++-
Mtest/stage1/behavior.zig | 1+
Atest/stage1/behavior/typename.zig | 7+++++++
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)); +}