Federico Poli

Results 69 issues of Federico Poli

I found that `cargo outdated` panics when running on our project. Project: https://github.com/viperproject/prusti-dev, commit `5705580`. Command: ``` RUST_BACKTRACE=1 cargo outdated --root-deps-only --workspace ``` Output: ``` thread 'main' panicked at 'index...

@JonasAlaif This PR implements the second normalization described in https://github.com/viperproject/prusti-dev/pull/971#issuecomment-1146060967. A lot of the new code is boilerplate to visit all positions of a program. Unfortunately, the `Program` that is...

Prusti fails to generate the magic wand at the end of the `next` method: ```rust use prusti_contracts::*; struct Node { next: Option, } impl Node { fn next(&mut self) ->...

bug
fold-unfold

The proper range bounds of `.len()` seem to be encoded only if the `len()` call happens in pure code. ```rust use prusti_contracts::*; #[ensures(a.len() * 4

incompleteness

It's possible to trigger collisions in the caching of verification results. Step 1: open the Prusti IDE and verify this program ```rust use prusti_contracts::*; fn a() {} #[ensures(false)] fn test()...

bug

In the following program Prusti identifies a verification error as expected: the method implementation `A::bar` does not specify a postcondition, so it gets by default the `result > 10` from...

enhancement
error-reporting

The `Spanned::get_spans` method needs a MIR body to obtain the spans of variables stored in the `ForAllVars

bug

When running Prusti with panic and overflow check disabled on the following program, no error message should be raised. However, Prusti reports "[Prusti: invalid specification] the loop invariant cannot be...

bug
error-reporting

The following program crashes while encoding `test` with an "internal error: entered unreachable code: 1" in `vir_gen.rs`. Backtrace ``` [2022-03-24T10:14:30Z INFO prusti_viper::encoder::encoder] Encoding: 20220324_110509::test (20220324_110509::test) thread 'rustc' panicked at 'internal...

bug

When verifying a crate that depends on `prusti-contracts`, Prusti should check that the version of `prusti-contracts` is compatible with the version of Prusti, reporting a readable error message if they...

error-reporting