Commit Graph

29 Commits

Author SHA1 Message Date
Tim Chevalier
7c6e6fc5d4 Make expr_while work in typestate_check
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.)
2011-04-13 15:50:34 -07:00
Tim Chevalier
d7e8818414 Further work on typestate. Handles expr_rec and expr_assign now.
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.
2011-04-12 14:31:46 -07:00
Patrick Walton
9d9790c7f5 rustc: Add a uint hash function 2011-04-11 16:54:05 -07:00
Marijn Haverbeke
1af3174fe3 Move to single-uint file-position representation.
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.
2011-04-09 01:05:18 +02:00
Tim Chevalier
9c001af07c Implemented computing prestates and poststates for a few expression forms.
The typestate checker (if it's uncommented) now correctly rejects a
trivial example program that has an uninitialized variable.
2011-04-08 17:46:46 +00:00
Patrick Walton
6a60cb1e0c rustc: Mix the bits more when hashing def ids 2011-03-31 11:55:28 -07:00
Graydon Hoare
b2427509e2 Another go at changing compile-command, this time using RBUILD env var. 2011-03-25 15:07:27 -07:00
Graydon Hoare
91c2b82b09 Revert "Bulk-edit compile commands in emacs chatter to point to assumed build/ dir off src root."
This reverts commit 846f2e2ba9.
2011-03-25 14:05:38 -07:00
Graydon Hoare
846f2e2ba9 Bulk-edit compile commands in emacs chatter to point to assumed build/ dir off src root. 2011-03-25 13:48:37 -07:00
Patrick Walton
77a3373d53 rustc: Create a crate metadata cache 2011-03-25 10:44:24 -07:00
Graydon Hoare
54587bdccb Switch all vases of vec += elt to vec += vec. Prohibit former in rustboot. Tweak std lib vec fns in process. 2011-03-16 14:58:02 -07:00
Patrick Walton
51be50490e rustc: Expose common.def_eq(). 2011-03-08 11:59:38 -08:00
Graydon Hoare
381684043f Add a type for crate directives, to support intermixing with exprs in crate files. 2011-02-23 14:37:39 -08:00
Graydon Hoare
74eda5bb70 Make append take a mutable &. Not even checked at present, tsk tsk. 2010-10-22 11:46:54 -07:00
Graydon Hoare
b8cca0971f Teach trans to allocate, initialize and load from local variables. 2010-10-19 14:54:10 -07:00
Graydon Hoare
4a3edb320d Store items and decls in vecs to preserve input order, index externally. Implement block-local name lookup. 2010-10-18 18:19:16 -07:00
Graydon Hoare
57c7e94c8f 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. 2010-10-15 22:09:09 -07:00
Graydon Hoare
d1e59d6910 Add input coordinate tracking to all major rustc ast nodes. 2010-10-05 18:21:44 -07:00
Graydon Hoare
44e4b2d63a Teach rustc about phi nodes, block relationships. Translate if- and block-expressions. 2010-10-04 15:55:12 -07:00
Graydon Hoare
2db1f864e2 Declare the global and upcall glues as ValueRefs in rustc's trans. 2010-09-23 17:16:34 -07:00
Graydon Hoare
1f0621d04e Begin teaching rustc to parse literals, atoms, stmts, blocks, items, modules, crates. 2010-09-21 16:22:32 -07:00
Graydon Hoare
c5f4789d5b Bind pattern slots with ?, drop parens from 0-ary tag constructors, translate 0-ary constructors as constants. Rustc loses ~300kb. 2010-09-20 23:56:43 -07:00
Graydon Hoare
a9e2327a18 Switch tags to purely nominal, removing TY_iso and TY_idx. Seems to mostly work, possibly a little bumpy. Changes a lot. 2010-09-09 15:59:29 -07:00
Graydon Hoare
eb90be7798 Add session, span tracking, error reporting, beginning of a function to parse an item to rustc. 2010-09-01 13:24:14 -07:00
Graydon Hoare
2f3201a64c Reinstate commit 9f0eaa6581 with sufficient fixes to hopefully not break tinderboxes. 2010-08-31 12:42:24 -07:00
Patrick Walton
6ec8c21016 Revert "More work on lexer.rs: start using keyword hashtable, handle more lexemes." due to tinderbox bustage
This reverts commit 9f0eaa6581.
2010-08-27 17:29:56 -07:00
Graydon Hoare
9f0eaa6581 More work on lexer.rs: start using keyword hashtable, handle more lexemes. 2010-08-27 16:35:50 -07:00
Graydon Hoare
0f224f977d Expand rustc lexer to do almost-nearly-nontrivial stuff. 2010-08-20 11:42:44 -07:00
Graydon Hoare
49f668dff3 Add mod common to rustc. 2010-08-18 11:34:47 -07:00