about summary refs log tree commit diff
path: root/src/rt/rust_run_program.cpp
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2011-08-01 20:55:04 -0700
committerTim Chevalier <chevalier@alum.wellesley.edu>2011-08-01 20:58:16 -0700
commit5cf5f5024d5efcbb0b399433fa2117e1146292c2 (patch)
tree0e3d8a5834748c401ab5d7f67eb76f3ca52e5c0c /src/rt/rust_run_program.cpp
parentc9b16ac4c28ab5696d318dc7e414c73e27f9d631 (diff)
downloadrust-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/rust_run_program.cpp')
0 files changed, 0 insertions, 0 deletions