Commit Graph

18954 Commits

Author SHA1 Message Date
Graydon Hoare
1f2585f479 Teach trans to access object fields. 2010-12-30 17:01:20 -08:00
Graydon Hoare
9676fb2d0a Assign method types properly by sorted-order. 2010-12-30 17:00:59 -08:00
Graydon Hoare
153efb58bc Teach typeck to check obj field accesses. 2010-12-30 15:28:19 -08:00
Graydon Hoare
bc9db2e972 Teach resolve to find obj fields and ty params from methods. 2010-12-30 15:27:52 -08:00
Graydon Hoare
a9d03dd1a2 Add def id to ast for obj fields. 2010-12-30 15:27:19 -08:00
Rafael Ávila de Espíndola
09ef31caa0 Record the ast of uses and imports. 2010-12-30 11:21:37 -05:00
Graydon Hoare
ad19961c47 More mopping up wrong-named rules in the Makefile. 2010-12-29 17:46:22 -08:00
Graydon Hoare
454bf428ef Remove LLVM rustboot backend. 2010-12-29 16:27:19 -08:00
Patrick Walton
a634b21563 rustc: Make parametric return types go through an out pointer 2010-12-29 19:08:35 -05:00
Rafael Ávila de Espíndola
2c6dd18224 Add a -shared option to rustc and don't try to look for main if it is given. 2010-12-29 11:21:16 -05:00
Rafael Ávila de Espíndola
f900792fa3 Parse 'import' directives in rustc. 2010-12-24 21:06:14 -08:00
Rafael Ávila de Espíndola
8d2fdac93b Parse 'use' directives in rustc. 2010-12-24 17:03:46 -08:00
Graydon Hoare
d948208978 Add Rafael to AUTHORS. 2010-12-24 17:00:02 -08:00
Rafael Ávila de Espíndola
e67234b29c Handle missing ocaml bindings for LLVM. 2010-12-24 16:58:52 -08:00
Graydon Hoare
5c7cd6419c Modify translation of obj methods to accept an initial recursive-self-typed (in the LLVM sense) obj argument. 2010-12-23 17:31:16 -08:00
Graydon Hoare
f2195d8b0a Print recursive LLVM types. 2010-12-23 17:05:27 -08:00
Patrick Walton
daac7a8b13 rustc: Add a type_has_dynamic_size predicate 2010-12-22 18:02:48 -08:00
Graydon Hoare
3f3a121043 Copy body tydesc and args into obj bodies. 2010-12-22 16:09:59 -08:00
Graydon Hoare
a2a642c17a Correct bug in typechecking ctor arguments to nonempty objects. 2010-12-22 13:57:18 -08:00
Graydon Hoare
ac270fc854 Allocate heap cells to store non-empty object bodies. 2010-12-22 13:56:51 -08:00
Patrick Walton
0411132679 rustc: Move unification out of typeck.rs; trans will need it too. 2010-12-21 17:47:13 -08:00
Patrick Walton
e06263ff4b rustc: Reference count the function context in typechecking so that passing it around via objects isn't as costly 2010-12-21 17:27:29 -08:00
Graydon Hoare
3504f4a4bf Sort methods in object types. 2010-12-21 16:43:28 -08:00
Patrick Walton
744b164b7d rustc: Move type logic out of typeck so trans doesn't look like it's calling into typeck 2010-12-21 16:24:17 -08:00
Patrick Walton
d7cbeba731 rustboot: Only bottom out at opaque IL types after finding two cycles. DON'T ASK ME WHY THIS WORKS. 2010-12-21 15:59:14 -08:00
Graydon Hoare
6443179bca Add std.sort, with a simple mergesort. 2010-12-21 00:44:06 -08:00
Patrick Walton
b9286a7179 rustc: Sanitize names better. Puts out burning tinderbox on OS X. 2010-12-20 19:52:14 -08:00
Patrick Walton
5cbf8889d0 rustc: Add bind expressions to the AST 2010-12-20 18:58:18 -08:00
Graydon Hoare
ed1dddc33f Null-check on obj box ptr, init to null. Un-XFAIL simple-obj.rs. 2010-12-20 17:28:07 -08:00
Graydon Hoare
399929ba0b Support ty_obj in trans_field; simple-obj.rs compiles (but crashes). 2010-12-20 16:48:28 -08:00
Graydon Hoare
86188da348 Mop up cases of s/copy/take/, remove 'binding' terminology, whitespace police, and make obj/fn structural. 2010-12-20 16:26:38 -08:00
Patrick Walton
e70c695ab9 rustc: Use the passed-in tydescs for take and drop glue in parametric fns. Also fix a level-of-indirection problem with tydesc params. 2010-12-20 15:23:24 -08:00
Patrick Walton
194d7844ea rustc: Print the type when we die in trans.make_drop_glue_inner 2010-12-20 14:44:04 -08:00
Patrick Walton
9fb2284600 rustc: Add a type param ID -> type descriptor mapping to function contexts 2010-12-20 14:35:04 -08:00
Graydon Hoare
7bd30f83e1 Put out burning tree (sizeof / alignof bug). 2010-12-20 12:54:50 -08:00
Graydon Hoare
490da3564b Use gvars for vtbls rather than returning const immediates. 2010-12-20 11:41:32 -08:00
Graydon Hoare
6a8518c97b Trailing whitespace police. 2010-12-20 11:41:32 -08:00
Patrick Walton
a7e9984999 rustc: Build tydescs for types, and make all take and drop operations go through the tydescs for simplicity (LLVM inlines them). 2010-12-20 10:23:37 -08:00
Patrick Walton
ad5e920276 rustc: Remove the unused "name" parameter from trans.new_builder 2010-12-17 18:42:15 -08:00
Patrick Walton
9b56b79296 rustc: Make some no-op take and drop glue for scalar types 2010-12-17 18:40:24 -08:00
Graydon Hoare
01bcb1d10e Split part of typeck.check_fn out into typeck.check_item_fn, then check all fns, including obj fns. 2010-12-17 18:25:14 -08:00
Patrick Walton
7210a31e2a rustc: Make all drop and take glue have the same signature, so we can put them in tydescs 2010-12-17 18:20:51 -08:00
Graydon Hoare
b00abd04e2 Record type annotations for methods. 2010-12-17 17:52:25 -08:00
Patrick Walton
c44c7c5ab3 rustc: Zero out slots after dropping them 2010-12-17 17:21:56 -08:00
Graydon Hoare
56e040e61a Trans methods more correctly, and store vtbl pointer in pair returned from obj ctor. 2010-12-17 00:31:41 -08:00
Graydon Hoare
62d62ce4da Remove calltup fields from ABI, add binding fields. 2010-12-16 23:26:07 -08:00
Graydon Hoare
87b18f3539 Un-XFAIL tag.rs. 2010-12-16 23:25:32 -08:00
Graydon Hoare
a3f828f941 Sketch trans_vtbl. 2010-12-16 18:34:04 -08:00
Patrick Walton
bfdba2dbcc rustc: Translate parametric function signatures into task + type parameters + formal arguments 2010-12-16 16:35:19 -08:00
Graydon Hoare
31f0642da3 Stub out translation of obj ctors (no vtbl or body built). 2010-12-16 15:55:28 -08:00