diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2017-11-10 06:04:49 -0500 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2017-12-04 08:25:21 -0500 |
| commit | a96b0cf86df86c9b9f9bbc5a24d06e4304bc871d (patch) | |
| tree | bdb627f26f36e7f59705b3420c9f7e8f4fcfc187 /src/rustllvm/RustWrapper.cpp | |
| parent | 932452ecc7f0a8ab8ad678a343d828385de80e1a (diff) | |
| download | rust-a96b0cf86df86c9b9f9bbc5a24d06e4304bc871d.tar.gz rust-a96b0cf86df86c9b9f9bbc5a24d06e4304bc871d.zip | |
replace constant regions with a post-inference check
Rather than declaring some region variables to be constant, and reporting errors when they would have to change, we instead populate each free region X with a minimal set of points (the CFG plus end(X)), and then we let inference do its thing. This may add other `end(Y)` points into X; we can then check after the fact that indeed `X: Y` holds. This requires a bit of "blame" detection to find where the bad constraint came from: we are currently using a pretty dumb algorithm. Good place for later expansion.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
