Summary
On kubernetes, Go import_map_suffix CALLS edges go from 59 to 497 purely as a side effect of receiver-qualified method QNs (#1913), with no change to the strategy itself. Sampling the 497 (target label distribution: 494 Method, 2 Function, 1 Field) shows the majority are correct — but correct by accident, and the same mechanism produces the wrong-arity rebind class filed separately.
Mechanism
resolve_import_map (src/pipeline/registry.c:699) tries the exact resolved.name first, then the import_map_suffix fallback (:757-777): the first QN that starts with resolved + "." and ends with .name. Under flat method QNs (pkg.Method) that fallback almost never fired for Go because pkg.Method was already an exact hit or nothing matched. Under receiver-qualified QNs (pkg.Type.Method) every local.Method call whose local is named like an imported package now falls into the suffix scan and picks the first matching member in that package.
Examples that land right (the local's type really lives in that package):
clientset.CoreV1 -> client-go.kubernetes.Interface.CoreV1
informers.Core -> client-go.informers.SharedInformerFactory.Core
version.Major -> apimachinery.pkg.util.version.Version.Major
Examples that land wrong (documented in the wrong-arity issue): meta.SetNamespace -> meta.MetadataAccessor.SetNamespace.
Why it needs an explicit decision
"First QN in the package that ends with .Method" is not a rule anyone chose for Go; it is Perl-era behaviour that #1913 exposed to a new input. Leaving it silently keeps ~440 good edges and an unknown number of bad ones at confidence 0.85, cand=1 — indistinguishable from genuine resolutions in every aggregate view. Dropping it silently loses the good ones. Either outcome should be a decision with the numbers attached, taken together with #1913 and the arity issue.
Summary
On kubernetes, Go
import_map_suffixCALLS edges go from 59 to 497 purely as a side effect of receiver-qualified method QNs (#1913), with no change to the strategy itself. Sampling the 497 (target label distribution: 494 Method, 2 Function, 1 Field) shows the majority are correct — but correct by accident, and the same mechanism produces the wrong-arity rebind class filed separately.Mechanism
resolve_import_map(src/pipeline/registry.c:699) tries the exactresolved.namefirst, then theimport_map_suffixfallback (:757-777): the first QN that starts withresolved + "."and ends with.name. Under flat method QNs (pkg.Method) that fallback almost never fired for Go becausepkg.Methodwas already an exact hit or nothing matched. Under receiver-qualified QNs (pkg.Type.Method) everylocal.Methodcall whose local is named like an imported package now falls into the suffix scan and picks the first matching member in that package.Examples that land right (the local's type really lives in that package):
Examples that land wrong (documented in the wrong-arity issue):
meta.SetNamespace -> meta.MetadataAccessor.SetNamespace.Why it needs an explicit decision
"First QN in the package that ends with
.Method" is not a rule anyone chose for Go; it is Perl-era behaviour that #1913 exposed to a new input. Leaving it silently keeps ~440 good edges and an unknown number of bad ones at confidence 0.85,cand=1— indistinguishable from genuine resolutions in every aggregate view. Dropping it silently loses the good ones. Either outcome should be a decision with the numbers attached, taken together with #1913 and the arity issue.