From 9232425b8f68e84d192c9c77ca0c3b7b2547d195 Mon Sep 17 00:00:00 2001
From: ssmid <43345275+ssmid@users.noreply.github.com>
Date: Wed, 17 Jul 2024 16:06:34 +0200
Subject: [PATCH] single pointer slice syntax added
---
doc/langref.html.in | 1 +
doc/langref/test_single_item_pointer.zig | 14 ++++++++++++++
2 files changed, 15 insertions(+)
diff --git a/doc/langref.html.in b/doc/langref.html.in
index ca13fae095..add68ad082 100644
--- a/doc/langref.html.in
+++ b/doc/langref.html.in
@@ -1935,6 +1935,7 @@ or
{#syntax#}*T{#endsyntax#} - single-item pointer to exactly one item.
- Supports deref syntax: {#syntax#}ptr.*{#endsyntax#}
+ - Supports slice syntax: {#syntax#}ptr[0..1]{#endsyntax#}
- Supports pointer subtraction: {#syntax#}ptr - ptr{#endsyntax#}
diff --git a/doc/langref/test_single_item_pointer.zig b/doc/langref/test_single_item_pointer.zig
index aa8ae8d609..79252b1fa0 100644
--- a/doc/langref/test_single_item_pointer.zig
+++ b/doc/langref/test_single_item_pointer.zig
@@ -32,4 +32,18 @@ test "pointer array access" {
try expect(array[2] == 4);
}
+test "slice syntax" {
+ // Get a pointer to a variable:
+ var x: i32 = 1234;
+ const x_ptr = &x;
+
+ // Convert to array pointer using slice syntax:
+ const x_array_ptr = x_ptr[0..1];
+ try expect(@TypeOf(x_array_ptr) == *[1]i32);
+
+ // Coerce to many-item pointer:
+ const x_many_ptr: [*]i32 = x_array_ptr;
+ try expect(x_many_ptr[0] == 1234);
+}
+
// test