Commit Graph

30154 Commits

Author SHA1 Message Date
Patrick Walton
7bdb93266d rustc: Translate nullary tag constructors 2010-12-03 10:24:55 -08:00
Graydon Hoare
d922b0ad9c Drop slots on the way out of scopes. Un-XFAIL box.rs. 2010-12-02 19:44:24 -08:00
Graydon Hoare
966cfed07c Modify block ctxt / cleanup handling to only occur on scope blocks. 2010-12-02 19:12:34 -08:00
Graydon Hoare
1e9c8b923d Implement translation for deref unop. 2010-12-02 19:12:09 -08:00
Graydon Hoare
97247bbb53 Change order of basic blocks in copy_ty, makes nicer disassembly. 2010-12-02 18:33:11 -08:00
Graydon Hoare
f69b4417e6 Don't drop context returned from decl-init call to copy_ty. 2010-12-02 18:32:43 -08:00
Graydon Hoare
0f41f5a8f9 Improve translations of unary box operator and drop_ty on boxes. 2010-12-02 17:43:24 -08:00
Patrick Walton
e233978891 rustc: Change fn_names and fn_ids to item_names and item_ids in trans, since we're soon to be storing tags in there too 2010-12-02 17:30:07 -08:00
Patrick Walton
49b3cd700e rustc: Remove the premature optimization for nullary tag constructors, since it'll be no longer necessary once LLVM gets a unit type 2010-12-02 17:18:06 -08:00
Graydon Hoare
a439f6ec68 Add ty_boxed to typeck.type_is_boxed. 2010-12-02 15:56:44 -08:00
Graydon Hoare
cdcab742a7 Fix fold bug on expr_unary. 2010-12-02 15:54:45 -08:00
Graydon Hoare
df5f8f3e37 Add minimal test for box/deref. 2010-12-02 15:02:17 -08:00
Graydon Hoare
de9fc72cb4 Add test for non-exhaustive match failure. 2010-12-02 14:50:00 -08:00
Graydon Hoare
b79de6b76c Typecheck the box and deref unops properly. 2010-12-02 14:38:32 -08:00
Patrick Walton
376b35e618 rustc: Remove the overly complex variant_indices and n_ary_variant_indices tables 2010-12-02 11:00:10 -08:00
Patrick Walton
eeecc8d061 rustc: Add stub support for tag constructors in trans 2010-12-01 19:03:47 -08:00
Graydon Hoare
98a63bd1f9 Add code to fail on non-exhaustive alt matching. Fix all cases this picked up in rustc. 2010-12-01 17:09:02 -08:00
Patrick Walton
fd600bad46 rustc: Annotate variants with their types. This may be useful for trans! 2010-12-01 15:27:38 -08:00
Patrick Walton
cd97b9d965 rustc: Typecheck tag constructors 2010-12-01 11:39:03 -08:00
Patrick Walton
67a616340d rustc: Fix segfault due to nonexhaustive match when using tags 2010-12-01 10:53:40 -08:00
Patrick Walton
42282a25c0 rustc: Resolve tag variant names 2010-12-01 10:19:38 -08:00
Graydon Hoare
4dc98e54d1 Make the ugly detailed leak-spray on rustc failures optional. 2010-11-30 17:10:51 -08:00
Graydon Hoare
45043374ff Tidy up structural types for rec, tup AST and typeck nodes. 2010-11-30 16:32:00 -08:00
Patrick Walton
567a45cc70 rustc: Add def ids to variants 2010-11-30 12:32:20 -08:00
Graydon Hoare
25b973df1b Finish support for typechecking and translating records. Un-XFAIL rec.rs. 2010-11-30 10:39:35 -08:00
Graydon Hoare
9c426521ee Wrap long lines. 2010-11-29 17:53:35 -08:00
Graydon Hoare
a94046f5d2 Teach typechecker about record types. 2010-11-29 17:42:53 -08:00
Patrick Walton
6c5a05b819 rustc: Implement the block syntax discussed on the mailing list 2010-11-29 17:11:41 -08:00
Graydon Hoare
6c4e975099 Teach fold about ty_rec. 2010-11-29 16:09:46 -08:00
Graydon Hoare
e6b7f76385 Add ty_rec and parse it. 2010-11-29 15:42:09 -08:00
Graydon Hoare
3e08171fc2 Change mutability into a type constructor. 2010-11-29 15:29:55 -08:00
Graydon Hoare
386f363cfe Change from bool to tag ast.mutability. 2010-11-29 14:18:26 -08:00
Graydon Hoare
38846e39c4 Add ast.ty_mutable. 2010-11-29 12:29:57 -08:00
Graydon Hoare
20b11c832c Add mut field to typeck.ty. 2010-11-29 12:13:38 -08:00
Graydon Hoare
7be7c23b6b Copy args to allocas, change llargs lookups to 'in mem'. Un-XFAIL tup.rs. 2010-11-26 17:47:27 -08:00
Graydon Hoare
d7ce2425c9 Load structural values through pointer before passing structs as args. 2010-11-26 16:08:10 -08:00
Graydon Hoare
9f56b0061c Pass exprs by @, always treat structural types by pointer, move path and name into trans_lval. 2010-11-26 15:54:04 -08:00
Graydon Hoare
1600974a3a Avoid segfault due to fallthrough in base case of incr_all_refcounts. We could use a typestate checker in rustc, any time now. 2010-11-26 13:03:56 -08:00
Graydon Hoare
7e01aba12d Declare the memcpy intrinsics properly. 2010-11-26 13:02:48 -08:00
Graydon Hoare
3fd3270845 Return memcpy src rather than falling through and failing. 2010-11-25 18:28:15 -08:00
Graydon Hoare
a95dbdef70 Cast memcpy args to correct types. 2010-11-25 18:13:20 -08:00
Graydon Hoare
9b3182a99d Add lookup checks and intrinsics table to trans. 2010-11-25 17:45:26 -08:00
Graydon Hoare
7e2f205866 Add missed case to typeck.ast_ty_to_ty, plus faux exhaustiveness check. 2010-11-25 17:06:36 -08:00
Graydon Hoare
416d9bc0fd Fix typo in numeric-label-parsing loop. 2010-11-25 16:53:17 -08:00
Graydon Hoare
f0abe8f568 Translate field expressions. 2010-11-25 16:40:24 -08:00
Graydon Hoare
5678f5aa56 Typecheck field expressions. 2010-11-25 16:40:03 -08:00
Graydon Hoare
092af6fb76 Typecheck tup expressions. 2010-11-25 14:44:04 -08:00
Graydon Hoare
cffdb66aa4 Translate tuple-expressions. 2010-11-24 18:11:11 -08:00
Patrick Walton
78ec07790a rustc: Assign definition IDs to type params 2010-11-24 18:01:20 -08:00
Patrick Walton
9769b61226 rustc: Parse type-parametric typedefs 2010-11-24 17:36:22 -08:00