about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-08-14 15:26:09 +0000
committerbors <bors@rust-lang.org>2015-08-14 15:26:09 +0000
commite7261f3ab60e0d1e6c808004ecd25c88e04f3683 (patch)
tree43c443aa413ef4bec429ae0f29b7c802943a8c74 /src/rustllvm/RustWrapper.cpp
parent0649b16ade40d1fb02ea5c390293278bd876854a (diff)
parent7f8942c18d552837033dc543e03a4156200896e8 (diff)
downloadrust-e7261f3ab60e0d1e6c808004ecd25c88e04f3683.tar.gz
rust-e7261f3ab60e0d1e6c808004ecd25c88e04f3683.zip
Auto merge of #27641 - nikomatsakis:soundness-rfc-1214, r=nrc
This PR implements the majority of RFC 1214. In particular, it implements:

- the new outlives relation
- comprehensive WF checking

For the most part, new code receives warnings, not errors, though 3 regressions were found via a crater run. 

There are some deviations from RFC 1214. Most notably:

- we still consider implied bounds from fn ret; this intersects other soundness issues that I intend to address in detail in a follow-up RFC. Fixing this without breaking a lot of code probably requires rewriting compare-method somewhat (which is probably a good thing).
- object types do not check trait bounds for fear of encountering `Self`; this was left as an unresolved question in RFC 1214, but ultimately feels inconsistent.

Both of those two issues are highlighted in the tracking issue, https://github.com/rust-lang/rust/issues/27579. #27579 also includes a testing matrix with new tests that I wrote -- these probably duplicate some existing tests, I tried to check but wasn't quite sure what to look for. I tried to be thorough in testing the WF relation, at least, but would welcome suggestions for missing tests.

r? @nrc (or perhaps someone else?)
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions