Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support circular and out-of-order trait/type references #47

Merged
merged 4 commits into from
Jan 9, 2022

Conversation

robotlolita
Copy link
Contributor

Long overdue. This allows types and traits to be defined in any order within a package (circular type dependencies will never be allowed outside of a package because Crochet's capabilities require a proper hierarchy of dependencies), and can finally get rid of the awkward 0-types.crochet convention. Types and traits can now be defined wherever makes most sense for them to be, and circular constraints now work properly.

This fixes #10.

@robotlolita robotlolita added the enhancement New feature or request label Jan 9, 2022
@robotlolita robotlolita added this to the First stable release milestone Jan 9, 2022
@robotlolita robotlolita merged commit d233998 into main Jan 9, 2022
@robotlolita robotlolita deleted the patch/circular-types branch January 9, 2022 17:27
robotlolita added a commit that referenced this pull request Jan 13, 2022
This was missed when adding type and trait placeholders in #47. This extends the possibility of referring to capabilities before they're defined.
@robotlolita robotlolita added the c:vm Changes to the VM, compiler,, or language semantics label Jan 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c:vm Changes to the VM, compiler,, or language semantics enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support proper mutually-recursive definitions in Crochet
1 participant