Part of #620. ConfigContext._instancePathToOption handles path modifiers, member lookup, effective class, record bindings and inner/outer all in one loop, and the effective class is computed differently in five places. #620 changes keys to use the effective class, so that logic must exist in one place first.
- Split it into
applyPathModifiers, memberOption, effectiveClass (selection → redeclare modification → declared type → short-class alias), bindingRedirect, resolveInstance (returns null when a path can't be resolved; cached per context)
- Replace the other effective-class computations with
effectiveClass
- Equivalence test: for every template and every reachable instance path, the old and new code resolve the same option and value
No behavior change; keys stay as they are.
Acceptance: equivalence test passes on all templates; client tests and golden tests unchanged.
Specification
docs/selection-keys.md, sections "Resolution rules" and "Interpreter structure".
Part of #620.
ConfigContext._instancePathToOptionhandles path modifiers, member lookup, effective class, record bindings and inner/outer all in one loop, and the effective class is computed differently in five places. #620 changes keys to use the effective class, so that logic must exist in one place first.applyPathModifiers,memberOption,effectiveClass(selection → redeclare modification → declared type → short-class alias),bindingRedirect,resolveInstance(returns null when a path can't be resolved; cached per context)effectiveClassNo behavior change; keys stay as they are.
Acceptance: equivalence test passes on all templates; client tests and golden tests unchanged.
Specification
docs/selection-keys.md, sections "Resolution rules" and "Interpreter structure".