spec 1.6: a declarator reaches a package call through an alias or a direct argument, and an invoked factory's result is a value (#110) - #119
Merged
Conversation
…r a direct argument, and an invoked factory's result is a value (#110) Two widenings, both written to what chant does and no more, found by the corpus cross-check once F-Call existed. F-Call step 7 no longer requires an entity or a composite instance back from an invoked factory: the result is a value, whatever it is, and chant had never checked (L8.19). F-Declarator's single and destructure cases reach a call through a top-level const alias, and a declarator's call has its direct arguments resolved the same way; a package call nested inside an expression, an object, an array, a new, or a tag's interpolation stays J1's rejection, which chant also refuses (L2.18). F-Host-Closed-vs-Open says so in a sentence. No J1 rule is added, so data-host is untouched. A first draft admitted the call in any position and made the reference fold five shapes chant refuses; the fixture cross-check caught it before the corpus did. The reference follows aliases through parentheses, as, satisfies and the non-null assertion (F-Eval-Unwrap); resolves a declarator's direct package-call arguments through F-Call; and the shapes host gains Stack, a host-published composite. Two fixtures moved to the new rule and one is new. The corpus's valueCall limit retires: at chant-v0.72.1 the comparable set is 440 of 441, all agreed, 304 folding identically; the one file left imports a package the host cannot load. The #110 hold-out in the chant-agreement suite goes with it. Version 1.6, packages 1.6.0.
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.
Closes #110 (Option 1, as decided).
F-Callstep 7: an invoked factory's result is a value, live or plain (chant never checked;L8.19).F-Declarator: a top-level const alias of a package call, or a member read on one, resolves at the declarator, and a declarator's call has its direct package-call arguments resolved through F-Call (L2.18). A call nested anywhere else stays J1's rejection, which chant also refuses; probed on chant0.72.1shape by shape.F-Host-Closed-vs-Openreworded. No J1 rule, sodata-hostis unchanged.(),as,satisfies,!; F-Call argument resolution; step 7 relaxed. Shapes host gainsStack, a host-published composite. Fixtures:F-Call/a-host-factory-is-invokedandF-Declarator/a-const-alias-of-a-call-resolves-at-the-declarator.chant-v0.72.1: thevalueCalllimit retires; 440 of 441 comparable, 440 agreed, 304 identical namespaces (from 372/372/258). The one file left is thehostlimit.figures.json, the corpus page, evidence table, paper and caveats follow.#110hold-out inchant-agreement.test.tsis removed; chant answers those fixtures and agrees.1.6, packages1.6.0; tagspec-1.6after merge.