From dd285cdd5c7a8bbfecd882fef5db7522d6f29aba Mon Sep 17 00:00:00 2001 From: Joe Savona Date: Fri, 6 Jun 2025 09:56:04 -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]