Find a file
Tim Chevalier 971b5d5151 Started adding support for return checking and non-returning function annotations
* Reorganized typestate into several modules.

* Made typestate check that any function with a non-nil return type
  returns a value. For now, the check is a warning and not an error
  (see next item).

* Added a "bot" type (prettyprinted as _|_), for constructs like be, ret, break, cont, and
  fail that don't locally return a value that can be inspected. "bot"
  is distinct from "nil". There is no concrete syntax for _|_, while
  the concrete syntax for the nil type is ().

* Added support to the parser for a ! annotation on functions whose
  result type is _|_. Such a function is required to have either a
  fail or a call to another ! function that is reached in all control
  flow paths. The point of this annotation is to mark functions like
  unimpl() and span_err(), so that an alt with a call to err() in one
  case isn't a false positive for the return-value checker. I haven't
  actually annotated anything with it yet.

* Random bugfixes:

* * Fixed bug in trans::trans_binary that was throwing away the
    cleanups for nested subexpressions of an and or or
    (tests: box-inside-if and box-inside-if2).

** In typeck, unify the expected type arguments of a tag with the
   actual specified arguments.
2011-05-16 16:59:25 -07:00
doc Put out burning tinderbox. 2011-05-05 11:54:45 -07:00
mk Remove rustboot from the repository. 2011-05-13 18:38:28 -07:00
src Started adding support for return checking and non-returning function annotations 2011-05-16 16:59:25 -07:00
.gitignore Added .bz2 and stage1 directory to .gitignore 2011-05-16 16:13:11 -07:00
AUTHORS.txt Add Kelly to AUTHORS. 2011-05-05 16:40:57 -07:00
configure Remove rustboot from the repository. 2011-05-13 18:38:28 -07:00
LICENSE.txt Update copyrights for completeness. 2011-05-03 12:10:03 -07:00
Makefile.in Be a bit noisier about being in a transition. 2011-05-16 15:14:58 -07:00
README Update README to point to github, test email notification. 2010-06-23 21:11:10 -07:00

This is a compiler and suite of associated libraries and documentation for the
Rust programming language.

See LICENSE.txt for terms of copyright and redistribution.

See http://github.com/graydon/rust for current development page.