-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: Iterator tracking issues #980
Open
vl0w
wants to merge
45
commits into
viperproject:master
Choose a base branch
from
vl0w:iterators-feature-flag
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains 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
vl0w
force-pushed
the
iterators-feature-flag
branch
3 times, most recently
from
April 28, 2022 09:53
546c701
to
fb7d09e
Compare
vl0w
force-pushed
the
iterators-feature-flag
branch
from
April 28, 2022 13:37
fb7d09e
to
3e7d676
Compare
vl0w
force-pushed
the
iterators-feature-flag
branch
from
April 28, 2022 14:32
3e7d676
to
0cb7c15
Compare
vl0w
force-pushed
the
iterators-feature-flag
branch
2 times, most recently
from
April 28, 2022 17:46
32ccf0e
to
ae6589d
Compare
vl0w
force-pushed
the
iterators-feature-flag
branch
4 times, most recently
from
April 29, 2022 12:51
12f63cf
to
ec42da1
Compare
…ts to account for references in associated types
vl0w
force-pushed
the
iterators-feature-flag
branch
from
April 29, 2022 18:49
ec42da1
to
0af45d7
Compare
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>
Build failed: |
Aurel300
force-pushed
the
iterators-feature-flag
branch
from
July 20, 2022 08:44
4197345
to
c038711
Compare
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>
Build failed: |
Aurel300
force-pushed
the
iterators-feature-flag
branch
from
July 20, 2022 10:21
c038711
to
186e97e
Compare
@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
force-pushed
the
iterators-feature-flag
branch
from
July 27, 2022 10:57
1a06b91
to
dbd4d2d
Compare
Aurel300
force-pushed
the
iterators-feature-flag
branch
from
July 27, 2022 14:02
6e53b86
to
c74215b
Compare
Aurel300
force-pushed
the
iterators-feature-flag
branch
from
July 29, 2022 14:44
280af36
to
fa449f9
Compare
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>
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>
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_hold
instead ofpredicate_must_hold_considering_regions
) to account for references in associated types. See testassociated_types_6.rs
merge_generics
now 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 implementCopy
only ifT
isCopy
.forall(|x: Self::SomeAssocType| ...)