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 |
|
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 |
|
Patrick Walton
|
51782d2c21
|
rustc: Add a type fold mechanism to the typechecker
|
2010-12-16 15:13:04 -08:00 |
|
Patrick Walton
|
a6c6e8679e
|
rustc: Only generalize on definition types that can actually be parametric
|
2010-12-16 13:59:20 -08:00 |
|
Patrick Walton
|
680e858d61
|
rustc: Write types back when typechecking "ret" statements
|
2010-12-16 12:25:39 -08:00 |
|
Patrick Walton
|
13b889287b
|
rustc: Make trans.type_of handle parameter types
|
2010-12-16 12:23:48 -08:00 |
|
Patrick Walton
|
e6908a66ec
|
rustc: Infer the types of type-parametric functions
|
2010-12-16 11:12:45 -08:00 |
|
Graydon Hoare
|
9759d1e08a
|
Annotate obj items while folding ast in typeck.
|
2010-12-16 10:34:54 -08:00 |
|
Graydon Hoare
|
7d2feae857
|
Collect obj items, translate obj-name references and obj-ctor types.
|
2010-12-16 10:23:47 -08:00 |
|
Graydon Hoare
|
d8d2220b30
|
Typecheck object method calls.
|
2010-12-15 20:23:36 -08:00 |
|
Graydon Hoare
|
482dc0c8fa
|
Convert obj item type to ctor type rather than obj type.
|
2010-12-15 17:04:21 -08:00 |
|
Patrick Walton
|
e17473de07
|
rustc: Move next_var_id back to the crate context in typechecking; we'll need it when collecting item types
|
2010-12-15 15:10:41 -08:00 |
|
Patrick Walton
|
d1b2366983
|
rustc: Resolve type params
|
2010-12-15 13:13:36 -08:00 |
|
Graydon Hoare
|
76aab6b1a8
|
Teach typeck to stringify obj types.
|
2010-12-15 12:30:31 -08:00 |
|
Patrick Walton
|
91c0cab61a
|
rustc: Un-XFAIL alt-pattern-simple.rs
|
2010-12-15 10:15:02 -08:00 |
|
Patrick Walton
|
42789c4b97
|
rustc: Fix bug involving extracting any variant element beyond the first. Un-XFAIL alt-tag.rs.
|
2010-12-15 10:11:33 -08:00 |
|
Patrick Walton
|
2a8350e8d9
|
rustc: Resolve tag names in the typechecker
|
2010-12-15 10:00:28 -08:00 |
|
Patrick Walton
|
0d3400fec2
|
rustc: Lex '_' as an underscore, not as an identifier
|
2010-12-15 09:44:48 -08:00 |
|
Patrick Walton
|
e17806e1c8
|
rustc: Translate pattern matching
|
2010-12-15 09:38:40 -08:00 |
|
Graydon Hoare
|
cd55b7ed89
|
Teach typeck.ty, typeck.collect_item_types and typeck.check_expr about obj items.
|
2010-12-14 18:04:39 -08:00 |
|
Graydon Hoare
|
b1e0c60d6d
|
Add ty_obj to ast and parser.
|
2010-12-14 17:42:12 -08:00 |
|
Graydon Hoare
|
4cddeed651
|
Teach resolve about obj items.
|
2010-12-14 17:09:37 -08:00 |
|
Graydon Hoare
|
a7eb1ac90f
|
Move call_expr parse rule to the place where it needs to be to understand complex calls.
|
2010-12-14 16:59:13 -08:00 |
|
Graydon Hoare
|
e0998847be
|
Teach fold about objs.
|
2010-12-14 16:35:31 -08:00 |
|
Graydon Hoare
|
b606ba81cf
|
Add obj items to AST and parser.
|
2010-12-14 15:32:13 -08:00 |
|
Patrick Walton
|
5a1cba7883
|
Make failing to resolve a symbol an error
|
2010-12-13 17:59:05 -08:00 |
|
Graydon Hoare
|
525966a543
|
Fix a couple bugs in iter_sequence, un-XFAIL vec-drop.rs.
|
2010-12-13 17:48:42 -08:00 |
|
Patrick Walton
|
90807e240f
|
rustc: Typecheck pattern bindings
|
2010-12-13 16:44:20 -08:00 |
|
Patrick Walton
|
0ef65780ca
|
rustc: Check patterns before arm blocks in alt expressions; this will be needed for binding type resolution
|
2010-12-13 16:39:35 -08:00 |
|
Patrick Walton
|
29e6d7a4ad
|
rustc: Hack to get rid of passing i1 types for unit around in most cases, suggested by Rafael
|
2010-12-13 16:12:45 -08:00 |
|
Graydon Hoare
|
a3cbdc661c
|
Set the new vec fill-size on the compiler side, as in rustboot. Un-XFAIL first 3 vec tests.
|
2010-12-13 11:16:04 -08:00 |
|
Graydon Hoare
|
734c190918
|
Syntax tweak: move 'mutable' from pseudo-ty-param on vec ctor to low-precedence prefix inside paren.
|
2010-12-13 09:25:19 -08:00 |
|
Patrick Walton
|
04e15bf8f8
|
rustc: Typecheck "alt" expressions and patterns
|
2010-12-12 20:02:49 -08:00 |
|
Patrick Walton
|
7d0734bb96
|
rustc: Propagate types for vector, tuple, record, assignment, and if expressions downward again
|
2010-12-12 19:54:58 -08:00 |
|
Patrick Walton
|
833af6f6f3
|
Revert "rustc: Propagate types for vector, tuple, record, assignment, and if expressions downward" due to test bustage
This reverts commit 1cdf42dd63 .
|
2010-12-12 19:16:08 -08:00 |
|
Patrick Walton
|
d08b5bc3d4
|
rustc: Fix nonexhaustive match failure on unresolved identifiers
|
2010-12-12 16:49:51 -08:00 |
|
Patrick Walton
|
9ac42ca743
|
rustc: Resolve variant names in patterns
|
2010-12-12 16:47:37 -08:00 |
|
Patrick Walton
|
bc5fa9bf67
|
rustc: "resoling" -> "resolving" typo
|
2010-12-12 16:37:31 -08:00 |
|
Patrick Walton
|
38ba0e6917
|
rustc: Add a definition ID to tag patterns
|
2010-12-12 16:30:34 -08:00 |
|
Patrick Walton
|
1cdf42dd63
|
rustc: Propagate types for vector, tuple, record, assignment, and if expressions downward
|
2010-12-11 23:22:06 -08:00 |
|
Patrick Walton
|
0d5724b773
|
rustc: Make return value inference use next_ty_var, now that we have it
|
2010-12-11 22:40:46 -08:00 |
|
Patrick Walton
|
c3ab601a89
|
rustc: Move next_var_id from typeck.crate_ctxt to typeck.fn_ctxt
|
2010-12-11 22:37:23 -08:00 |
|
Patrick Walton
|
368459db43
|
rustc: Remove "update_env_for_arm" debugging message
|
2010-12-11 22:30:12 -08:00 |
|
Patrick Walton
|
de118d79b6
|
rustc: Resolve pattern bindings
|
2010-12-10 18:08:32 -08:00 |
|
Patrick Walton
|
0509b1b9d7
|
rustc: Add update_env_for_arm to fold; we'll need it to resolve pattern bindings
|
2010-12-10 17:49:28 -08:00 |
|
Graydon Hoare
|
f97242c255
|
Fix bad GEP and missing branch in iter_sequence; vec.rs compiles now.
|
2010-12-10 17:46:47 -08:00 |
|
Graydon Hoare
|
60affafdcd
|
Implement expr_vec.
|
2010-12-10 17:25:22 -08:00 |
|
Graydon Hoare
|
779b913348
|
Fix trans_index implementation.
|
2010-12-10 17:25:22 -08:00 |
|
Patrick Walton
|
0d43c198f0
|
rustc: Add def ids to pattern bindings
|
2010-12-10 17:24:53 -08:00 |
|
Patrick Walton
|
0b84707da7
|
rustc: Add tag support to ty_of_item in typeck
|
2010-12-10 16:44:12 -08:00 |
|
Patrick Walton
|
2c472c0de8
|
rustc: Add LLVM typedefs for rust_crate and rust_task for good measure
|
2010-12-10 16:29:41 -08:00 |
|
Patrick Walton
|
cf8ad5f56d
|
rustc: Declare LLVM typedefs appropriately
|
2010-12-10 16:24:47 -08:00 |
|
Patrick Walton
|
e37c032eb0
|
rustc: Move refcount incrementing out of line too
|
2010-12-10 16:14:06 -08:00 |
|
Graydon Hoare
|
865c06c1f9
|
Preliminary translation of expr_index.
|
2010-12-10 16:10:35 -08:00 |
|
Patrick Walton
|
270b93bd71
|
rustc: Move refcount decrement-and-free (drop) logic out-of-line
|
2010-12-10 15:37:17 -08:00 |
|