Federico Poli

Results 208 comments of Federico Poli

> Would it be helpful if I add the failing example program to `verify_partial` as a regression test for when the snapshot encoding is updated? Yes, thanks. Since we decided...

I gave a better look at this bug. It's not exactly an instance of #364. It turns out that the fold-unfold algorithm generates the correct expression, but then the `fix_quantifiers`...

Could you try updating Prusti? With `Prusti version: commit 53f8dc4 2021-10-27 16:11:40 UTC, built on 2021-10-27 16:18:35 UTC` I don't get that error, and I recently fixed a bunch of...

> I get the same error in Prusti as you describe (I was already on that commit luckily ). However, I hope I'm understanding correctly what Prusti expects in terms...

Mmm, the latest error seems to be a bug in the encoding of the expiration of shared references. Maybe shared references of slice types are handled incorrectly. It's definitely a...

Minimal example: ```rust use prusti_contracts::*; #[pure] #[trusted] pub fn foo(inner: &[usize; 4]) {} #[pure] pub fn bar(inner: &[usize; 4]) -> bool { foo(inner); foo(inner); true } #[trusted] fn main() {}...

> Shall I also create a new Github issue for this one? Yes, thanks! (I didn't get that error because I was on #732, good point.)

The program in the first message now panics: ``` thread 'rustc' panicked at 'not yet implemented', prusti-viper/src/encoder/mir/pure/specifications/encoder_high.rs:34:5 ```

The easiest thing in my opinion is that the hash used for caching should also include the positions, instead of ignoring them.

The `line` and `column` fields of `Position` do not affect Prusti's error reporting. They are just there to help debugging some internal errors. (I personally never benefit from them and...