Refactoring to allow for new verification back ends#1329
Conversation
There was a problem hiding this comment.
Could you please move all the Java things into Backend::Viper? For example, the construction of the Viper object, build Viper program closure, etc.
|
We just discussed this with Vytautas: it should be enough to store Viper inside an |
|
If you remove the enum Backend<'v> {
Viper { verifier: viper::Verifier<'v>, verification_context: Rc<VerificationContext<'v>> }
}then making the |
The |
|
I made it so that the |
fpoli
left a comment
There was a problem hiding this comment.
Lazy is perfect, thanks! The dump disappeared and the log messages need to be updated, then it's good to be merged.
Co-authored-by: Federico Poli <fpoli@users.noreply.github.com>
4fc9a41 to
f373f15
Compare
|
I rebased on master. |
|
The CI failure seems to be unrelated to this PR. @fpoli If you agree, please merge. |
Related to #1321 – this PR aims to abstract away the notion of a verification back end behind an enum, in order to facilitate implementation of new back ends.
Had to make
envonviper::Verifierpublic to do this. I cannot put the call toprogram.to_viper()invipersince that would be a cyclic dependency toprusti-common, and returning anAstFactoryfrom some method would cause E0502 on call toviper.verify().