@compileLog and slices/arrays

Is it a bug?

$ zig version
0.14.0-dev.2851+b074fb7dd
const foo1 = "0123456789"[7..9];
const foo2 = "0123456789"[0..2];
const bar1: []const u8 = "0123456789"[7..9];
const bar2: []const u8 = "0123456789"[0..2];

comptime {
  @compileLog(foo1);
  @compileLog(foo2);
  @compileLog(bar1);
  @compileLog(bar2);
}

output:

@as(*const [2]u8, "0123456789")
@as(*const [2]u8, "0123456789")
@as([]const u8, "0123456789"[0..2])
@as([]const u8, "0123456789"[0..2])

expected:

@as(*const [2]u8, "78")
@as(*const [2]u8, "01")
@as([]const u8, "78"[0..2]) or @as([]const u8, "0123456789"[7..9])
@as([]const u8, "01"[0..2]) or @as([]const u8, "0123456789"[0..2])

Yes: @compileLog displays original array after slicing · Issue #21596 · ziglang/zig · GitHub

1 Like