prusti-dev
prusti-dev copied to clipboard
WIP: Iterator tracking issues
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_holdinstead ofpredicate_must_hold_considering_regions) to account for references in associated types. See testassociated_types_6.rs merge_genericsnow 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>addsimpl<T: Copy> Copy for Foo {}, but we do not want to implementCopyonly ifTisCopy. - Quantified variables now support associated types:
forall(|x: Self::SomeAssocType| ...)
bors r+
Canceled.
bors r+
bors r+
@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.
bors r+