Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upObligation caching allows for unsound coinductive matching #33344
Comments
arielb1
self-assigned this
May 2, 2016
arielb1
added
I-nominated
T-compiler
I-unsound 💥
labels
May 2, 2016
This comment has been minimized.
This comment has been minimized.
|
I think the best way to fix this would be to move in-fulfillcx caching to the obligation forest and check for cycles in |
This comment has been minimized.
This comment has been minimized.
|
triage: P-high |
rust-highfive
added
P-high
and removed
I-nominated
labels
May 5, 2016
arielb1
added a commit
to arielb1/rust
that referenced
this issue
May 7, 2016
arielb1
added a commit
to arielb1/rust
that referenced
this issue
May 10, 2016
arielb1
added a commit
to arielb1/rust
that referenced
this issue
May 11, 2016
arielb1
added a commit
to arielb1/rust
that referenced
this issue
May 14, 2016
bors
closed this
in
5c39a2a
May 17, 2016
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
arielb1 commentedMay 2, 2016
STR
Expected Result
This should not compile, as adding
where T: Tweedledumtois_eedemonstrates.Actual Result
This typecks and fails on trans. A variant using
: 'staticcompiles but is unsound.Analysis
The current scheme for within-tree obligation caching checks in a very deliberate (and slow) way that obligations are not satisfied by their parents, but it allows sibling obligations to satisfy each-other.