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

Replace must_erase_during_extraction with erasable. #3519

Closed
wants to merge 3 commits into from

Conversation

gebner
Copy link
Contributor

@gebner gebner commented Oct 3, 2024

Right now we have two separate sets of functions which decide whether a type is erasable/noninformative, one which only looks at erasable and another which also looks at must_erase_for_extraction.

This PR removes the must_erase_for_extraction version and treats the must_erase_for_extraction attribute as a (deprecated) alias for erasable. This is preparatory work for #3366, so that we only have a single place to change for erasability.

Looking at the ML diff, the old code missed some opportunities to erase types to unit but there are no changes in executable code. Check world also gives a green.

//notably in FStar.ModifiesGen, since this expands the class of computation types
//that can be promoted from ghost to tot. That in turn results in slightly different
//smt encodings, leading to breakages. So, sadly, I'm not including must_erase_for_extraction
//here. In any case, must_erase_for_extraction is transitionary and should be removed
Copy link
Contributor Author

Choose a reason for hiding this comment

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

FStar.ModifiesGen is still a big headache but it didn't cause any issues in this PR.

@gebner gebner closed this Oct 23, 2024
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.

1 participant