diff options
| author | Tim Chevalier <chevalier@alum.wellesley.edu> | 2011-08-01 20:55:04 -0700 |
|---|---|---|
| committer | Tim Chevalier <chevalier@alum.wellesley.edu> | 2011-08-01 20:58:16 -0700 |
| commit | 5cf5f5024d5efcbb0b399433fa2117e1146292c2 (patch) | |
| tree | 0e3d8a5834748c401ab5d7f67eb76f3ca52e5c0c /src/rt | |
| parent | c9b16ac4c28ab5696d318dc7e414c73e27f9d631 (diff) | |
| download | rust-5cf5f5024d5efcbb0b399433fa2117e1146292c2.tar.gz rust-5cf5f5024d5efcbb0b399433fa2117e1146292c2.zip | |
Handle bang functions correctly in typestate
The logic for how the "returns" constraint was handled was always dodgy, for reasons explained in the comments I added to auxiliary::fn_info in this commit. Fixed it by adding distinct "returns" and "diverges" constraints for each function, which are both handled positively (that is: for a ! function, the "diverges" constraint must be true on every exit path; for any other function, the "returns" constraint must be true on every exit path). Closes #779
Diffstat (limited to 'src/rt')
0 files changed, 0 insertions, 0 deletions
