From a83db33ba2d5fddcc453735a7a0d9b57c67739a8 Mon Sep 17 00:00:00 2001 From: IOKG04 Date: Tue, 12 Aug 2025 01:54:46 +0200 Subject: [PATCH 1/2] `*LinkedList.remove()` assumes node is in the list probably closes https://github.com/ziglang/zig/issues/16795 --- lib/std/DoublyLinkedList.zig | 1 + lib/std/SinglyLinkedList.zig | 2 ++ 2 files changed, 3 insertions(+) diff --git a/lib/std/DoublyLinkedList.zig b/lib/std/DoublyLinkedList.zig index dcc656bf4375..b7a5ed2e112c 100644 --- a/lib/std/DoublyLinkedList.zig +++ b/lib/std/DoublyLinkedList.zig @@ -105,6 +105,7 @@ pub fn prepend(list: *DoublyLinkedList, new_node: *Node) void { } /// Remove a node from the list. +/// Assumes the node is in the list. /// /// Arguments: /// node: Pointer to the node to be removed. diff --git a/lib/std/SinglyLinkedList.zig b/lib/std/SinglyLinkedList.zig index d118ce0395a5..e251b15fd9d1 100644 --- a/lib/std/SinglyLinkedList.zig +++ b/lib/std/SinglyLinkedList.zig @@ -85,6 +85,8 @@ pub fn prepend(list: *SinglyLinkedList, new_node: *Node) void { list.first = new_node; } +/// Remove `node` from the list. +/// Assumes `node` is in the list. pub fn remove(list: *SinglyLinkedList, node: *Node) void { if (list.first == node) { list.first = node.next; From 63a45b8ecdc9e4babd883be71dde1826f32b556f Mon Sep 17 00:00:00 2001 From: Ryan Liptak Date: Sat, 25 Oct 2025 21:28:54 -0700 Subject: [PATCH 2/2] SinglyLinkedList.remove docs: Assumes -> asserts Removing a node that is not in the list invokes safety-checked illegal behavior, so "asserts" is the recommended language to use. --- lib/std/SinglyLinkedList.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/std/SinglyLinkedList.zig b/lib/std/SinglyLinkedList.zig index e251b15fd9d1..3952bf4233e5 100644 --- a/lib/std/SinglyLinkedList.zig +++ b/lib/std/SinglyLinkedList.zig @@ -86,7 +86,7 @@ pub fn prepend(list: *SinglyLinkedList, new_node: *Node) void { } /// Remove `node` from the list. -/// Assumes `node` is in the list. +/// Asserts that `node` is in the list. pub fn remove(list: *SinglyLinkedList, node: *Node) void { if (list.first == node) { list.first = node.next;