about summary refs log tree commit diff
path: root/src/rustllvm/CoverageMappingWrapper.cpp
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2020-05-19 01:09:40 +0000
committerNiko Matsakis <niko@alum.mit.edu>2020-06-22 14:33:44 +0000
commitf2cf9944831f15b1940da85c8fb1b419dec9f074 (patch)
treed7f255b1b039ca14ef42a048ede6fc83da60275a /src/rustllvm/CoverageMappingWrapper.cpp
parent4199b3ae26007eb9c871b57f56057da586bbd1db (diff)
downloadrust-f2cf9944831f15b1940da85c8fb1b419dec9f074.tar.gz
rust-f2cf9944831f15b1940da85c8fb1b419dec9f074.zip
rewrite leak check to be based on universes
In the new leak check, instead of getting a list of placeholders to
track, we look for any placeholder that is part of a universe which
was created during the snapshot.

We are looking for the following error patterns:

* P1: P2, where P1 != P2
* P1: R, where R is in some universe that cannot name P1

This new leak check is more precise than before, in that it accepts
this patterns:

* R: P1, even if R cannot name P1, because R = 'static is a valid
sol'n
* R: P1, R: P2, as above

Note that this leak check, when running during subtyping, is less
efficient than before in some sense because it is going to check and
re-check all the universes created since the snapshot. We're going to
move when the leak check runs to try and correct that.
Diffstat (limited to 'src/rustllvm/CoverageMappingWrapper.cpp')
0 files changed, 0 insertions, 0 deletions