[semantic-reference-resolution] Patch 9: Unify shell-to-core linkage onto qualifiedReferences#17
Merged
Conversation
…e with qualified linkage
ea1f289 to
64d44a1
Compare
Review SummaryI did not find any in-scope defects in this patch. The evaluator change, updated tests, and fixture adjustments appear consistent with the new qualified-reference shell-linkage contract described in the PR and patch spec.
Variant: convergence-v2 Candidates: 0 | Posted: 0 | Suppressed: 0 0 comments posted · Model: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Patch 9: Unify shell-to-core linkage onto qualifiedReferences
Changes
Files to Modify
Gameplan Specification
Patch Specification
Implementation Notes
evaluate_shell_modulesnow mirrors rule 15's qualified surface shape exactly, but for core linkage: it skips core files withoutmoduleNameand builds{core.module_name}.{decision_surface|decision_products}before intersecting with each shell file'squalified_references.evaluate_core_modulesandevaluate_state_modulesuntouched. Their evidence still comes from bare property-check and operation-sequence reference sets, so moving them would require schema/adapter work outside Patch 9.evaluate_test.py, I updated two Go integration fixtures and one Swift fixture so the adapter suites reflect the qualified-linkage contract instead of old syntactic/bare behavior. The Go passing shell fixtures now import a separate decision package because the Go adapter deliberately excludes same-package references fromqualifiedReferences. The Swift enum-case fixture is now a negative collision regression: a shell method namedaddno longer satisfies linkage just because a same-domain core enum has a bare.addcase..callroles as reference candidates in addition to.reference. This keeps the extraction semantic/USR-backed while tolerating toolchains that index function calls without setting both bits.SourceFilefield the shell positive rule consumes.Spec/Evidence Mapping:
evaluate.py:evaluate_shell_modules, where the same-domain lookup is keyed bymetadata.domainand the match issource_file.qualified_references.intersection(core_references).EvaluateTests.test_shell_module_does_not_accept_same_named_bare_core_reference.EvaluateTests.test_shell_module_accepts_qualified_core_decision_reference, the Swiftpassingfixture, and the updated Go passing fixtures.evaluate.py,evaluate_test.py, andgo/main_test.gofor the existing rule 15/qualified-reference contract and adapter expectations.uv run --project . python evaluate_test.py,cd go && go test .,sh swift/test.sh, andsh typescript/test.shpassed.sh ocaml/test.shcould not run in this environment because the local OCaml switch/library setup is missingyojson.