mirror of
https://github.com/safishamsi/graphify.git
synced 2026-10-18 01:49:22 +00:00
scoped_call_expression (`Helper::format()`) used the scope text as the callee name instead of the method name, so the shared cross-file bare-name pass bound the call to whatever node shared the class's label - almost always the class definition - never the actual method. It also skipped member-call handling entirely, so the edge went through the import-evidence confidence gate: same-namespace PHP classes never need a `use` import for each other, so every same-namespace static call was stuck at INFERRED 0.85 even though the receiver class is named explicitly in source. Capture the real method name as the callee and the scope as the receiver, mark it a member call, and add a dedicated PHP resolver (mirroring the existing Java/Swift/C++ member-call resolvers) that binds self::/static:: to the enclosing class, parent:: through a single inherits edge, and Class:: to the class's own method - all EXTRACTED, since the receiver is named explicitly in source. A dynamic scope ($var::method()) has no declared-type table to resolve against and is left unresolved rather than guessed. Fixes #3872