-
Notifications
You must be signed in to change notification settings - Fork 22
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
F* translation for trait inheritance is buggy #630
Comments
This issue has been marked as stale due to a lack of activity for 60 days. If you believe this issue is still relevant, please provide an update or comment to keep it open. Otherwise, it will be closed in 7 days. |
This issue has been closed due to a lack of activity since being marked as stale. If you believe this issue is still relevant, please reopen it with an update or comment. |
The issue regarding super fields missing trait A {}
trait B {}
trait T: A + B {}
impl A for () {}
impl B for () {}
impl T for () {} Open this code snippet in the playground The other bug is fixed. |
The PR #902 was reverted by #909 because #902 was generated redundant fields names in classes for super clauses, which is a problem for F*. This PR changes the naming scheme of super clauses for typeclasses in F*. Those names now take into account the trait name. The super trait names are now a 5 characters base 62 encoding of the hash of the predicate ID concatenated with the trait name. Fixes #630.
The PR #902 was reverted by #909 because #902 was generated redundant fields names in classes for super clauses, which is a problem for F*. This PR changes the naming scheme of super clauses for typeclasses in F*. Those names now take into account the trait name. The super trait names are now a 5 characters base 62 encoding of the hash of the predicate ID concatenated with the trait name. Fixes #630.
The PR #902 was reverted by #909 because #902 was generated redundant fields names in classes for super clauses, which is a problem for F*. This PR changes the naming scheme of super clauses for typeclasses in F*. Those names now take into account the trait name. The super trait names are now a 5 characters base 62 encoding of the hash of the predicate ID concatenated with the trait name. Fixes #630.
traits of the form:
get translated to
and its instances are of the form:
This has two issues:
_super
values should be[@@ FStar.Tactics.Typeclasses.tcinstance]
__marker_trait
or else this field should be declared in the class.The text was updated successfully, but these errors were encountered: