-
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
fix(engine/lib): import associated item projection on generic bounds #765
fix(engine/lib): import associated item projection on generic bounds #765
Conversation
Co-authored-by: Franziskus Kiefer <[email protected]>
Co-authored-by: Franziskus Kiefer <[email protected]>
@W95Psp, the fstar backend currently fails the traits test as I do not know how this additional feature should be dealt with there. Please let me know if you have any ideas on how to push this forward. |
Hi! Thanks for your PR! It looks good to me, I can add the missing bits for the F* backend, or we can just filter that out for now (I'm not entirely sure about what is the best encoding in F*). Do you want to take care of the filtering in the F* and Coq backends? For now, let's not feature-gate this new variant, let's see if that makes sense at some point for some backends. (What's up with the git history though? 👀) |
The coq backend is surprisingly unaffected by this change. The ssprove backend is though, so I just called For the F* backend, I filtered The git history was probably because I accidentally merged some changes in main... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great, thanks!
Ok, that will be a merge commit anyway, let's merge as is!
Partially address #549.
The importer in the engine now imports projections defined in
hax_frontend_exporter::types::copied::ClauseKind
.This is done by adding a variant to the
Ast.Rust.generic_constraint
enum to include projections, which necessitates changing the interface ofimport_clause
inengine/lib/import_thir.mli
to returnAst.Rust.generic_constraint
instead ofAst.Rust.impl_ident
.As a result, all functions that previously expect an
Ast.Rust.impl_ident
fromc_clause_kind
now do some additional filtering.Remaining issues:
Error.unimplemented
with reference to Associated types are not extracted correctly in general #549.