From cceeb55acce2cb175b3fe2bbcf69dba7e084ab1a Mon Sep 17 00:00:00 2001 From: Joe Savona Date: Fri, 30 May 2025 16:29:39 -0700 Subject: [PATCH] Update base for Update on "[compiler] Translate legacy FunctionSignature into new AliasingEffects" To help bootstrap the new inference model, this PR adds a helper that takes a legacy FunctionSignature and converts into a list of (new) AliasingEffects. This conversion tries to make explicit all the implicit handling of InferReferenceEffects and previous FunctionSignature. For example, the signature for Array.proto.pop has a calleeEffect of `Store`. Nowhere does it say that the receiver flows into the result! There's an implicit behavior that the receiver flows into the result. The new function makes this explicit by emitting a `Capture receiver -> lvalue` effect. So far I confirmed that this works for Array.proto.push() if i hard code the inference to ignore new-style aliasing signatures. I'll continue to refine it going forward as I start running the new inference on more fixtures. [ghstack-poisoned]