mirror of
https://github.com/safishamsi/graphify.git
synced 2026-10-16 17:09:17 +00:00
A C# object creation was resolved against every definition named X, methods included. Inside a helper like `static Bounds Bounds(..) => new Bounds(..)` (Unity's Bounds, outside the corpus) it became an EXTRACTED self-loop; across files the bare-name pass bound every `new List<T>()` in the corpus to an unrelated `List()` method, minting an INFERRED hub with one false caller per construction site. The same-file path now defers a construction whose bare-name target is a method, and the cross-file pass drops method candidates for `csharp_new` calls, next to the enum-member/property exclusion (#3815, #4245). A real type with the same name still wins. Dropping those candidates removes ties that used to hide a separate guess: a qualified construction (`new QuickSlotsBar.Slot()`) with several bare-name `Slot` classes went to the path-proximity tie-break, which ignores the qualifier and picks the Slot next to the caller. A qualified construction now takes the one candidate nested in a type named by the qualifier's last segment, or gets no edge; namespace qualifiers stay with `_resolve_csharp_qualified_calls`. Fixes #4419. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>