From 4bee4ec31313e68a93f14b811d8d813914fba974 Mon Sep 17 00:00:00 2001 From: Joe Savona Date: Fri, 6 Jun 2025 18:05:42 -0700 Subject: [PATCH] Update base for Update on "[compiler] Distinguish Alias/Assign effects" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Alias was akward becuase it had a specific data flow / mutability relationship — direct mutations affect both sides - but also populated the output. We need the ability to express the aliasing dataflwo/mutability relationship w/o expressing actual assignment. An example of this is that for an unknown method call `const z = x.y()`, we want to express the Alias-style mutability relationship btw z and x (Muate(z) => Mutate(x)), but we want to assume that `z !== x`. This ends up being really clean, the places that should use Assign are very obvious (LoadLocal, StoreLocal) and most places keep using Alias. [ghstack-poisoned]