Skip to content

Implement let statement resolution.#6

Merged
peterhuene merged 1 commit intomainfrom
let-statement
Nov 1, 2023
Merged

Implement let statement resolution.#6
peterhuene merged 1 commit intomainfrom
let-statement

Conversation

@peterhuene
Copy link
Copy Markdown
Member

This commit implements let-statement resolution, which includes:

  • Resolution of new expressions.
  • Resolution of access expressions.

The resolution of new expressions is complicated as it has to perform type checks for the instantiation arguments; the logic of which is in the newly implemented SubtypeChecker, which operates solely off of WAC type information.

Resolution now stores resolved "items" that have information attached about where they were sourced from (i.e. an import statement, an instantiation, etc.).

Type information has been refactored (again, sorry) to hopefully make more sense and appear better in error messages.

Additionally, the grammar was updated to support named instantiation arguments by identifier (and not just by strings).

Error reporting has also been cleaned up to remove duplicated information.

To support testing, a default wat feature allows for parsing component dependencies from local wat files.

The CLI now supports passing the paths to known package dependencies (via the --dep option).

This commit implements let-statement resolution, which includes:

* Resolution of new expressions.
* Resolution of access expressions.

The resolution of new expressions is complicated as it has to perform type
checks for the instantiation arguments; the logic of which is in the newly
implemented `SubtypeChecker`, which operates solely off of WAC type information.

Resolution now stores resolved "items" that have information attached about
where they were sourced from (i.e. an import statement, an instantiation,
etc.).

Type information has been refactored (again, sorry) to hopefully make more
sense and appear better in error messages.

Additionally, the grammar was updated to support named instantiation arguments
by identifier (and not just by strings).

Error reporting has also been cleaned up to remove duplicated information.

To support testing, a default `wat` feature allows for parsing component
dependencies from local `wat` files.

The CLI now supports passing the paths to known package dependencies (via the
`--dep` option).
@peterhuene
Copy link
Copy Markdown
Member Author

@fibonacci1729 no rush on the review! With this, I'll have another big PR coming to move us away from pest and one much, much smaller PR to finish resolution so that we can finally encode output components!

Copy link
Copy Markdown
Collaborator

@fibonacci1729 fibonacci1729 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

@peterhuene peterhuene merged commit 8f8867c into main Nov 1, 2023
@peterhuene peterhuene deleted the let-statement branch November 1, 2023 21:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants