[spec] Define the syntax of exact heap types#93
Merged
Conversation
Update backend-interpreter/construct.ml to avoid compile errors in the due to the changes to the type system in the reference interpreter. Stub out most of the handling of new functionality and leave TODOs so we can easily find the places to update later.
As described in the overview, relax validation so that the input and output types need only be in the same hierarchy rather than requiring that the output type be a subtype of the input type. In addition to updating the SpecTec source of truth, add notes about what the extra supertypes in the formal rules are achieving. These notes are modeled on the similar note that already exists for ref.cast_desc.
Member
Author
|
When I switch the order of variants to have exact types first, I get a fairly opaque error. produces: The span it is referring to contains |
rossberg
approved these changes
Feb 2, 2026
Member
rossberg
left a comment
There was a problem hiding this comment.
Yeah, the parser expects all parent types to come first. You should actually get an error "misplaced type", but there is a bug in the error detection logic. (Because of the parent typeuse after it, the parser instead tries to parse EXACT typeuse as a type expression referring to another parent variant type.)
Member
|
FWIW, I just relaxed parsing to allow any order. I think the EXACT case should still go last in this example, though. |
…-heap-type-syntax
…-heap-type-syntax
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.
No description provided.