prusti-dev icon indicating copy to clipboard operation
prusti-dev copied to clipboard

WIP: Iterator tracking issues

Open vl0w opened this issue 3 years ago • 10 comments

Some (smaller / bigger) changes needed to enable iterator support (WIP / tracking PR)

  • Moved normalization of constraint param env (for assoc types) for better logging
  • Fixed a bug in SpecGraph: Preconditions of the base spec were copied to the constrained spec
  • Ghost constraint resolving is a bit relaxed (predicate_may_hold instead of predicate_must_hold_considering_regions) to account for references in associated types. See test associated_types_6.rs
  • merge_generics now also merges lifetimes to accout for lifetimes appearing in #[refine_trait_spec]
  • Lifetimes in type models are not converted to the anonymous lifetime '_ anymore
  • Do not #[derive(Copy, Clone] on type models, because the derive macro "conditionally" implements it when generics are involved. That is, #[derive(Copy)] struct Foo<T> adds impl<T: Copy> Copy for Foo {}, but we do not want to implement Copy only if T is Copy.
  • Quantified variables now support associated types: forall(|x: Self::SomeAssocType| ...)

vl0w avatar Apr 27 '22 15:04 vl0w

bors r+

Aurel300 avatar Jul 19 '22 09:07 Aurel300

Build failed (retrying...):

bors[bot] avatar Jul 19 '22 14:07 bors[bot]

Canceled.

bors[bot] avatar Jul 19 '22 15:07 bors[bot]

bors r+

Aurel300 avatar Jul 19 '22 15:07 Aurel300

Build failed:

bors[bot] avatar Jul 19 '22 18:07 bors[bot]

bors r+

Aurel300 avatar Jul 20 '22 08:07 Aurel300

Build failed:

bors[bot] avatar Jul 20 '22 09:07 bors[bot]

@vakaras Could you have a look at the two failures here? I think they are the last ones before I can merge this and they are happening only in the unsafe core proof version.

Aurel300 avatar Jul 22 '22 08:07 Aurel300

bors r+

Aurel300 avatar Jul 29 '22 16:07 Aurel300

Build failed:

bors[bot] avatar Jul 29 '22 19:07 bors[bot]