diff --git a/src/analyze.cpp b/src/analyze.cpp index 30e147c62d..e43888e43f 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 610aaaab67..c232003db7 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 0000000000..1abefe5b5e --- /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)); +}