Open
Conversation
546c701 to
fb7d09e
Compare
fb7d09e to
3e7d676
Compare
3e7d676 to
0cb7c15
Compare
32ccf0e to
ae6589d
Compare
12f63cf to
ec42da1
Compare
…ts to account for references in associated types
ec42da1 to
0af45d7
Compare
Member
|
bors r+ |
bors bot
added a commit
that referenced
this pull request
Jul 19, 2022
980: WIP: Iterator tracking issues r=Aurel300 a=vl0w
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| ...)`
Co-authored-by: Jonas Hansen <ganymed92@gmail.com>
Contributor
|
Build failed: |
4197345 to
c038711
Compare
Member
|
bors r+ |
bors bot
added a commit
that referenced
this pull request
Jul 20, 2022
980: WIP: Iterator tracking issues r=Aurel300 a=vl0w
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| ...)`
Co-authored-by: Jonas Hansen <ganymed92@gmail.com>
Contributor
|
Build failed: |
c038711 to
186e97e
Compare
Member
|
@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. |
1a06b91 to
dbd4d2d
Compare
6e53b86 to
c74215b
Compare
280af36 to
fa449f9
Compare
Member
|
bors r+ |
bors bot
added a commit
that referenced
this pull request
Jul 29, 2022
980: WIP: Iterator tracking issues r=Aurel300 a=vl0w
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| ...)`
Co-authored-by: Jonas Hansen <ganymed92@gmail.com>
Contributor
|
Build failed: |
Merged
Aurel300
pushed a commit
to Aurel300/prusti-dev
that referenced
this pull request
Aug 17, 2022
bors bot
added a commit
that referenced
this pull request
Aug 18, 2022
1135: Generics improvements r=Aurel300 a=Aurel300 - [x] Improved associated types resolution (thanks `@vl0w,` from #980). The hope is that this won't erase too many regions... - [x] Normalise associated types when monomorphising MIR bodies for pure functions. - [x] Cache encoded pure functions by `DefId` + (full) encoded signature, not just "type parameters". Co-authored-by: Aurel Bílý <aurel.bily@gmail.com> Co-authored-by: Jonas <ganymed92@gmail.com>
bors bot
added a commit
that referenced
this pull request
Aug 18, 2022
1135: Generics improvements r=Aurel300 a=Aurel300 - [x] Improved associated types resolution (thanks `@vl0w,` from #980). The hope is that this won't erase too many regions... - [x] Normalise associated types when monomorphising MIR bodies for pure functions. - [x] Cache encoded pure functions by `DefId` + (full) encoded signature, not just "type parameters". Co-authored-by: Aurel Bílý <aurel.bily@gmail.com> Co-authored-by: Jonas <ganymed92@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Some (smaller / bigger) changes needed to enable iterator support
(WIP / tracking PR)
SpecGraph: Preconditions of the base spec were copied to the constrained specpredicate_may_holdinstead ofpredicate_must_hold_considering_regions) to account for references in associated types. See testassociated_types_6.rsmerge_genericsnow also merges lifetimes to accout for lifetimes appearing in#[refine_trait_spec]'_anymore#[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.forall(|x: Self::SomeAssocType| ...)