resolution_by_kind is distorted by construction: receiver heads emitted as type, member_access 100% circular, local rows in denominators #549
Labels
No labels
code-review
correctness
dos
performance
security
severity/high
severity/low
severity/medium
tech-debt
Kind/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
h-dv/code-index#549
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Consolidated scope (triage 2026-11-09)
Priority: Medium: the per-kind numbers point at the wrong gaps.
This issue is now the canonical tracker for:
Original report
Summary
project_overview.resolution_by_kindandresolution_gapsare what agents and operators use to judge where the index is weak. In several languages those percentages are distorted by construction, so they point at gaps that do not exist and hide the ones that do.typeref (ctxinctx.x, locals, module names)emit_receiver_type_refs_d(python.rs~1726), TStypescript.rs:2027-2045. In zod,zalone accounts for 7,418typerows, about a third of all of them, and dominatestop_unresolved. flask's unqualifiedtypeis 4,626 refs at 5.7%. JStypeis 3,429 at 0%. C# emits namespace segments (System,Data, about 200) and local receivers astype.member_access100% is circularmember_accessonly after it resolved (comment atcrates/guest/ruby/src/ruby.rs:2349). So the row is 100% by construction, and Ruby'stype% is understated by 760 successes.static, and 1,392 are declared local.top_referenced_symbolsis allrequirealiases.get_symbol Viewlists 5 test-local functions as candidates.find_references(res)returns 950 rows of handler parameters, none resolved, even though the walker marks them LOCAL (parity-deltas.tomlscope-verdict).Proposal
read(or a dedicatedreceiverrole) until it is proven to be a type. C# namespace segments becomeimport-like and leave the denominator.member_accessunder the kind it was emitted as, with the relabel shown as an outcome, not a kind.visibility: localsymbols are hidden by default fromfile_outline,search_symbols,top_referenced_symbolsand ambiguity candidate lists, behind an opt-in flag.internal_resolution_pctalready partly does, per kind.Acceptance
resolution_by_kind, with a written explanation of every move.typewithout the type-position role.Related: #46 (honest internal-resolution spread), #522.
Filed from the per-language review on 2026-11-09: 8 agents, one per language plus one for Vue/Svelte/XAML/timeline, run against copies of the pinned corpus repos (
tests/corpus/corpus.toml) using installed build2dcfc615, which differs from master only by XAML/CI commits. The top claim of every issue was spot-checked in the main session. Artifacts live under the review session's scratchpadlang-out/<lang>/and are available on request.Dogfood triage 2026-11-09: a function path used as a VALUE is labelled
member_accessfind_references("crates/test-support/src/frozen.rs:123")(fnfrozen::dir) returnscrates/daemon/tests/precision_gate.rs:297andcrates/test-support/src/shipped.rs:86as resolved refs of kindmember_access. Both arecrate::frozen::dirpassed as a function value (install(..., crate::frozen::dir)). That is not a member access, and it adds to the "member_access 100% circular" distortion this issue tracks. It should be a value use (read, or a dedicated value kind). It matters for the false "earned zero" family too (#535): a value use is the only evidence that such a fn is live. Thefind_callersdisclosure part is in #521.Merged into #536.
No denominator-only migration is verified; Python emit_receiver_type_refs_d still emits receiver heads as type refs.
Remaining: Resolution populations, including the tables, invariant gate and later gap miner.