From c8924c8856a1f45b9540299249b1f736b0fd0ff5 Mon Sep 17 00:00:00 2001 From: Joe Savona Date: Fri, 30 May 2025 16:29:15 -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]