@@ -5337,16 +5337,15 @@ test "implicit cast to comptime_int" {
5337
5337
}
5338
5338
{#code_end#}
5339
5339
{#header_close#}
5340
- {#header_open|Type Coercion: Arrays and Pointers#}
5341
- {#code_begin|test|coerce_arrays_and_ptrs #}
5340
+ {#header_open|Type Coercion: Slices, Arrays and Pointers#}
5341
+ {#code_begin|test|coerce__slices_arrays_and_ptrs #}
5342
5342
const std = @import("std");
5343
5343
const expect = std.testing.expect;
5344
5344
5345
- // This cast exists primarily so that string literals can be
5346
- // passed to functions that accept const slices. However
5347
- // it is probably going to be removed from the language when
5348
- // https://github.com/ziglang/zig/issues/265 is implemented.
5349
- test "[N]T to []const T" {
5345
+ // You can assign constant pointers to arrays to a slice with
5346
+ // const modifier on the element type. Useful in particular for
5347
+ // String literals.
5348
+ test "*const [N]T to []const T" {
5350
5349
var x1: []const u8 = "hello";
5351
5350
var x2: []const u8 = &[5]u8{ 'h', 'e', 'l', 'l', 111 };
5352
5351
try expect(std.mem.eql(u8, x1, x2));
@@ -5356,7 +5355,7 @@ test "[N]T to []const T" {
5356
5355
}
5357
5356
5358
5357
// Likewise, it works when the destination type is an error union.
5359
- test "[N]T to E![]const T" {
5358
+ test "*const [N]T to E![]const T" {
5360
5359
var x1: anyerror![]const u8 = "hello";
5361
5360
var x2: anyerror![]const u8 = &[5]u8{ 'h', 'e', 'l', 'l', 111 };
5362
5361
try expect(std.mem.eql(u8, try x1, try x2));
@@ -5366,7 +5365,7 @@ test "[N]T to E![]const T" {
5366
5365
}
5367
5366
5368
5367
// Likewise, it works when the destination type is an optional.
5369
- test "[N]T to ?[]const T" {
5368
+ test "*const [N]T to ?[]const T" {
5370
5369
var x1: ?[]const u8 = "hello";
5371
5370
var x2: ?[]const u8 = &[5]u8{ 'h', 'e', 'l', 'l', 111 };
5372
5371
try expect(std.mem.eql(u8, x1.?, x2.?));
0 commit comments