From 43a0f740bbe811d73c840b4b6f5c358787d98edc Mon Sep 17 00:00:00 2001 From: preciz Date: Sat, 3 Oct 2026 08:57:29 +0200 Subject: [PATCH] Attach updated access values to the reversal tail Reverse prior accessed elements directly onto the updated value and untouched tail. This avoids reversing and copying a temporary updated-head list cell. Assisted-by: Codex:GPT-6 --- lib/elixir/lib/access.ex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/elixir/lib/access.ex b/lib/elixir/lib/access.ex index 3530a1eeb9..1d4d7daed8 100644 --- a/lib/elixir/lib/access.ex +++ b/lib/elixir/lib/access.ex @@ -834,7 +834,7 @@ defmodule Access do defp get_and_update_at([head | rest], 0, next, updates, _default_fun) do case next.(head) do - {get, update} -> {get, :lists.reverse([update | updates], rest)} + {get, update} -> {get, :lists.reverse(updates, [update | rest])} :pop -> {head, :lists.reverse(updates, rest)} end end @@ -1240,7 +1240,7 @@ defmodule Access do defp get_and_update_find([head | rest], updates, predicate, next) do if predicate.(head) do case next.(head) do - {get, update} -> {get, :lists.reverse([update | updates], rest)} + {get, update} -> {get, :lists.reverse(updates, [update | rest])} :pop -> {head, :lists.reverse(updates, rest)} end else