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

Mutability translation with mutable cells #164

Closed
wants to merge 54 commits into from
Closed

Conversation

yannbolliger
Copy link
Collaborator

@yannbolliger yannbolliger commented Jun 25, 2021

This PR introduces the Mutability Translation presented in my thesis.

Closes #157. Closes #140. Closes #99.

Summary
The PR contains roughly these features/changes and all the refactoring/fixing that goes along:

  • Mutability is modelled with a mutable cell case class for all ADT fields and local variables:
    case class MutCell[@mutable T](var t: T)
  • var and mutable flags are thus removed from the user-interface.
  • Mutable references are extracted and verified by means of the mutable cells.

This PR supersedes the two former mutability-related PRs #158 #159.
It contains the grand majority of their changes though.

Two tests currently fail in the test suite, trait_bounds::verification and type_class::verification, due to the solver timing out, documented in this Stainless issue: epfl-lara/stainless#1093.

@yannbolliger
Copy link
Collaborator Author

Closing this as an archival action.

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.

Mutable fields with generics Mutable references Infer if fields are mutated
1 participant