Tim Chevalier e36df0f6c8 Handle fail after return correctly in typestate
Previously, typestate would conclude that this function was
correctly diverging:

fn f() -> ! { ret; fail; }

even though it always returns to the caller. It wasn't handling the
i_diverge and i_return bits correctly in the fail case. Fixed it.

Closes #897
2012-01-20 17:26:31 -08:00
..
2011-11-08 19:01:47 -08:00
2012-01-20 09:34:15 -08:00
2012-01-13 11:05:59 -08:00
2012-01-18 22:46:18 -08:00

This is preliminary version of the Rust compiler.

Source layout:

comp/              The self-hosted compiler

cargo/             The package manager

libcore/           The core library (imported and linked by default)
libstd/            The standard library (slightly more peripheral code)

rustllvm/          LLVM support code

rt/                The runtime system
rt/rust_*.cpp      - The majority of the runtime services
rt/isaac           - The PRNG used for pseudo-random choices in the runtime
rt/bigint          - The bigint library used for the 'big' type
rt/uthash          - Small hashtable-and-list library for C, used in runtime
rt/libuv           - The library used for async IO in the runtime
rt/{sync,util}     - Small utility classes for the runtime.

test/              Testsuite
test/compile-fail  - Tests that should fail to compile
test/run-fail      - Tests that should compile, run and fail
test/run-pass      - Tests that should compile, run and succeed
test/bench         - Benchmarks and miscellanea

Please be gentle, it's a work in progress.