aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/langref.html.in2
-rw-r--r--test/behavior/bugs/3779.zig10
2 files changed, 11 insertions, 1 deletions
diff --git a/doc/langref.html.in b/doc/langref.html.in
index c7a677bb8e..4da857bbc2 100644
--- a/doc/langref.html.in
+++ b/doc/langref.html.in
@@ -8623,7 +8623,7 @@ test "integer truncation" {
{#header_close#}
{#header_open|@typeName#}
- <pre>{#syntax#}@typeName(T: type) [N]u8{#endsyntax#}</pre>
+ <pre>{#syntax#}@typeName(T: type) *const [N:0]u8{#endsyntax#}</pre>
<p>
This function returns the string representation of a type, as
an array. It is equivalent to a string literal of the type name.
diff --git a/test/behavior/bugs/3779.zig b/test/behavior/bugs/3779.zig
index 5423a6f265..2c92236e20 100644
--- a/test/behavior/bugs/3779.zig
+++ b/test/behavior/bugs/3779.zig
@@ -19,3 +19,13 @@ test "@errorName() returns a string literal" {
try std.testing.expectEqualStrings("TestErrorCode", error_name);
try std.testing.expectEqualStrings("TestErrorCode", ptr_error_name[0..error_name.len]);
}
+
+const TestType = struct {};
+const type_name = @typeName(TestType);
+const ptr_type_name: [*:0]const u8 = type_name;
+
+test "@typeName() returns a string literal" {
+ try std.testing.expectEqual(*const [type_name.len:0]u8, @TypeOf(type_name));
+ try std.testing.expectEqualStrings("TestType", type_name);
+ try std.testing.expectEqualStrings("TestType", ptr_type_name[0..type_name.len]);
+}