From 2b44565534d470df27030bd6f5a41507f0d41f35 Mon Sep 17 00:00:00 2001 From: Abhigyan Patwari <126312502+abhigyanpatwari@users.noreply.github.com> Date: Thu, 22 Oct 2026 10:29:59 +0530 Subject: [PATCH] fix(resolution): correct receiver drops and property ownership (#3653) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(js): withdraw receiver drops for object-literal key writes a later pass answers The JS capture makes the enclosing object literal the receiver of each key it writes (`return { wickRatio: row.a }`). Case 0 of the receiver-bound pass treats any receiver text holding `.` or `(` as a compound expression, and a literal holding `row.a`, `0.5` or `...seed` does, so the fold failed and the site was recorded as a `receiver-unresolved` drop. The return-shape and unique-name passes run later and answered 17 of these 19 writes with an ACCESSES edge, but nothing withdrew the earlier drop. Both passes now report the sites they emitted an edge for, keyed by file, position, site kind and member name (position alone is shared by `a.b` and `a.b.c()`), and run.ts withdraws the matching `receiver-unresolved` drops once they have run. A site they leave unanswered keeps its drop. The other two writes, in `SignalService.make()`, had no edge at all: the own-return-shape tier read the caller's owner qualifier as `SignalService.make#0`, so it never matched the method's keys (`SignalService.make.secretFlag`) and three same-named candidates were refused. The qualifier is now the qualified name after `