- 11 5月, 2011 1 次提交
-
-
由 Patrick Walton 提交于
-
- 10 5月, 2011 1 次提交
-
-
由 Graydon Hoare 提交于
-
- 07 5月, 2011 1 次提交
-
-
由 Marijn Haverbeke 提交于
(Have fun mergining your stuff with this.)
-
- 06 5月, 2011 1 次提交
-
-
由 Lindsey Kuper 提交于
-
- 29 4月, 2011 3 次提交
-
-
由 Tim Chevalier 提交于
(needed for typestate_check). Also changed a (log; fail) to (log_err; fail) in typestate_check, and added some more logging funs in util.common.
-
由 Tim Chevalier 提交于
Added support for self_method, cont, chan, port, recv, send, be, do_while, spawn, and ext; handled break and cont correctly. (However, there are no non-xfailed test cases for ext or spawn in stage0 currently.) Although the standard library compiles and all test cases pass with typestate enabled, I left typestate checking disabled as rustc terminates abnormally when building the standard library if so, even though it does generate code correctly.
-
由 Tim Chevalier 提交于
Lots of work on typestate_check, seems to get a lot of the way through checking the standard library. * Added for, for_each, assign_op, bind, cast, put, check, break, and cont. (I'm not sure break and cont are actually handled correctly.) * Fixed side-effect bug in seq_preconds so that unioning the preconditions of a sequence of statements or expressions is handled correctly. * Pass poststate correctly through a stmt_decl. * Handle expr_ret and expr_fail properly (after execution of a ret or fail, everything is true -- this is needed to handle ifs and alts where one branch is a ret or fail) * Fixed bug in set_prestate_ann where a thing that needed to be mutated wasn't getting passed as an alias * Fixed bug in how expr_alt was treated (zero is not the identity for intersect, who knew, right?) * Update logging to reflect log_err vs. log * Fixed find_locals so as to return all local decls and exclude function arguments. * Make union_postconds work on an empty vector (needed to handle empty blocks correctly) * Added _vec.cat_options, which takes a list of option[T] to a list of T, ignoring any Nones * Added two test cases.
-
- 26 4月, 2011 1 次提交
-
-
由 Patrick Walton 提交于
rustc: Pass a "type context" around instead of directly passing the type store; prep for removing type annotations
-
- 23 4月, 2011 1 次提交
-
-
由 Patrick Walton 提交于
-
- 22 4月, 2011 1 次提交
-
-
由 Patrick Walton 提交于
-
- 21 4月, 2011 1 次提交
-
-
由 Patrick Walton 提交于
-
- 20 4月, 2011 1 次提交
-
-
由 Tim Chevalier 提交于
Summary says it all. Actually, only nested objects and functions are handled, but that's better than before. The fold that I was using before to traverse a crate wasn't working correctly, because annotations have to reflect the number of local variables of the nearest enclosing function (in turn, because annotations are represented as bit vectors). The fold was traversing the AST in the wrong order, first filling in the annotations correctly, but then re-traversing them with the bit vector length for any outer nested functions, and so on. Remedying this required writing a lot of tedious boilerplate code because I scrapped the idea of using a fold altogether. I also made typestate_check handle unary, field, alt, and fail. Also, some miscellaneous changes: * added annotations to blocks in typeck * fix pprust so it can handle spawn * added more logging functions in util.common * fixed _vec.or * added maybe and from_maybe in option * removed fold_block field from ast_fold, since it was never used
-
- 14 4月, 2011 1 次提交
-
-
由 Tim Chevalier 提交于
Also did some refactoring in typestate_check. All test cases in compile-fail that involve uninitialized vars now fail correctly! (All eight of them, that is.)
-
- 13 4月, 2011 1 次提交
-
-
由 Tim Chevalier 提交于
Also changed the ts_ann field on statements to be an ann instead, which explains most of the changes. As well, got rid of the "warning: no type for expression" error by filling in annotations for local decls in typeck (not sure whether this was my fault or not). Finally, in bitv, added a clone() function to copy a bit vector, and fixed is_true, is_false, and to_str to not be nonsense.
-
- 12 4月, 2011 1 次提交
-
-
由 Patrick Walton 提交于
-
- 09 4月, 2011 2 次提交
-
-
由 Marijn Haverbeke 提交于
This makes passing them around cheaper. There is now a table (see front/codemap.rs) that is needed to transform such an uint into an actual filename/line/col location. Also cleans up the span building in the parser a bit.
-
由 Tim Chevalier 提交于
The typestate checker (if it's uncommented) now correctly rejects a trivial example program that has an uninitialized variable.
-
- 01 4月, 2011 1 次提交
-
-
由 Patrick Walton 提交于
-
- 26 3月, 2011 4 次提交
-
-
由 Graydon Hoare 提交于
-
由 Graydon Hoare 提交于
This reverts commit 846f2e2b.
-
由 Graydon Hoare 提交于
-
由 Patrick Walton 提交于
-
- 17 3月, 2011 1 次提交
-
-
由 Graydon Hoare 提交于
Switch all vases of vec += elt to vec += vec. Prohibit former in rustboot. Tweak std lib vec fns in process.
-
- 09 3月, 2011 1 次提交
-
-
由 Patrick Walton 提交于
-
- 24 2月, 2011 1 次提交
-
-
由 Graydon Hoare 提交于
-
- 23 10月, 2010 1 次提交
-
-
由 Graydon Hoare 提交于
-
- 20 10月, 2010 1 次提交
-
-
由 Graydon Hoare 提交于
-
- 19 10月, 2010 1 次提交
-
-
由 Graydon Hoare 提交于
Store items and decls in vecs to preserve input order, index externally. Implement block-local name lookup.
-
- 16 10月, 2010 1 次提交
-
-
由 Graydon Hoare 提交于
Encode and decode tag types in dwarf properly. Add list module to std. Shift rustc to use std.util.option. Fix various dependent bugs. Closes #73.
-
- 06 10月, 2010 1 次提交
-
-
由 Graydon Hoare 提交于
-
- 05 10月, 2010 1 次提交
-
-
由 Graydon Hoare 提交于
-
- 24 9月, 2010 1 次提交
-
-
由 Graydon Hoare 提交于
-
- 22 9月, 2010 1 次提交
-
-
由 Graydon Hoare 提交于
-
- 21 9月, 2010 1 次提交
-
-
由 Graydon Hoare 提交于
Bind pattern slots with ?, drop parens from 0-ary tag constructors, translate 0-ary constructors as constants. Rustc loses ~300kb.
-
- 10 9月, 2010 1 次提交
-
-
由 Graydon Hoare 提交于
Switch tags to purely nominal, removing TY_iso and TY_idx. Seems to mostly work, possibly a little bumpy. Changes a lot.
-
- 02 9月, 2010 1 次提交
-
-
由 Graydon Hoare 提交于
-
- 01 9月, 2010 1 次提交
-
-
由 Graydon Hoare 提交于
Reinstate commit 9f0eaa65 with sufficient fixes to hopefully not break tinderboxes.
-
- 28 8月, 2010 2 次提交
-
-
由 Patrick Walton 提交于
Revert "More work on lexer.rs: start using keyword hashtable, handle more lexemes." due to tinderbox bustage This reverts commit 9f0eaa65.
-
由 Graydon Hoare 提交于
-
- 21 8月, 2010 1 次提交
-
-
由 Graydon Hoare 提交于
-