From 2b742a4c280320817bb1e95dd38b1a0348473d61 Mon Sep 17 00:00:00 2001 From: Joe Savona Date: Thu, 29 May 2025 17:30:08 -0700 Subject: [PATCH] Update base for Update on "[compiler] Repro for imprecise memo due to closure capturing changes" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Syncing this stack internally there is a small percentage of files that lose memoization, generally for callbacks. The repro here tries to get at the core pattern, where a parameter escapes into a mutable return value. This makes the callback appear mutable, and means that calls like array.map aren't able to optimize as well — even if the array itself is transitively immutable. The challenge is that we can't really distinguish between just capturing and true mutation right now — AnalyzeFunctions kind of has to pick one, and consider both a mutation. [ghstack-poisoned]