From ea5cedced1aa6bb5e1c1a07fcd16c5bed08c971f Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sat, 2 Mar 2019 14:31:04 -0500 Subject: [PATCH] fix @typeName on slices closes #2026 --- src/analyze.cpp | 4 +++- test/stage1/behavior.zig | 1 + test/stage1/behavior/typename.zig | 7 +++++++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 test/stage1/behavior/typename.zig diff --git a/src/analyze.cpp b/src/analyze.cpp index 30e147c62d186567a415d9921b6b839981505709..e43888e43f392e0b3787b8baed36622661de9014 100644 --- 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 index 610aaaab67b82f4df33c2ff58f44adde8599d471..c232003db79520758e69b479b8f5e6ec198f4ac4 100644 --- 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 new file mode 100644 index 0000000000000000000000000000000000000000..1abefe5b5e7bdb22ac7023740a48f4c09fe1d1f1 --- /dev/null +++ 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)); +} -- 2.54.0