From fbd36b8e0b8a88dbbe4daf8af39e89414a4a91ae Mon Sep 17 00:00:00 2001 From: Joe Savona Date: Mon, 9 Jun 2025 11:11:16 -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]