Commit Graph

545 Commits

Author SHA1 Message Date
Brian Anderson
b83a4af93c Fix the typechecking for expr_send and expr_recv 2011-03-14 16:41:46 -07:00
Brian Anderson
4ce4d8857f Add ty_port and ty_chan to expr_ty function 2011-03-14 16:41:46 -07:00
Brian Anderson
83f758cf0d Typecheck expr_send and expr_recv 2011-03-14 16:41:46 -07:00
Brian Anderson
a309f74a94 Reorganize evaluation of expr_send/recv to put them closer to expr_assign, to which they are similar 2011-03-14 16:41:46 -07:00
Brian Anderson
644d8b95da Factor out expression checking for forms that look like assignment 2011-03-14 16:41:46 -07:00
Brian Anderson
7464237256 Add folding and type checking for ports and chans 2011-03-14 16:41:46 -07:00
Brian Anderson
a3cca65f6d Fold ty_chan and ty_port 2011-03-14 16:41:46 -07:00
Rafael Ávila de Espíndola
3436979b17 Split trans' collection in two passes. This allows us to handle tags
that are defined after use in a block.

This is really inefficient, but for now it lets us compile the included test.
2011-03-14 16:56:03 -04:00
Graydon Hoare
ec7e84ae0d Preserve crate directives in the parsed crate. 2011-03-11 15:49:56 -08:00
Patrick Walton
9b3db0ed44 rustc: Add some stub metadata to each crate 2011-03-11 15:35:50 -08:00
Rafael Ávila de Espíndola
74d891517b reindex the block index. 2011-03-11 17:35:33 -05:00
Patrick Walton
6392bd1681 rustc: Load structural loop variables in iterators. Un-XFAIL foreach-put-structured.rs. 2011-03-11 14:29:45 -08:00
Rafael Ávila de Espíndola
28d51e3fd2 Add support for indexing tags in blocks. 2011-03-11 17:12:25 -05:00
Patrick Walton
37007a4d01 rustc: Populate the upvar environment when calling iterator bodies. Un-XFAIL test/run-pass/iter-range.rs. 2011-03-11 12:02:51 -08:00
Patrick Walton
336f22db61 rustc: Resolve upvars as necessary 2011-03-11 10:39:36 -08:00
Rafael Ávila de Espíndola
0117cf2fc2 Handle resolving to native modules. 2011-03-10 21:33:53 -05:00
Graydon Hoare
3aac5059ee Move the glue code to a .o file. This reduces how much asm we print
in each "translation unit".

Part of it is not repetitive and should probably be moved to a .ll file, but
for now we autogen all of it.

(Modified somewhat by graydon while integrating).
2011-03-10 17:30:08 -08:00
Patrick Walton
7454b53411 rustc: Build up a list of upvars inside foreach bodies 2011-03-10 16:49:00 -08:00
Patrick Walton
60f86354ad rustc: Use the generic info from the item in bind thunks just as calls do. Un-XFAIL drop-parametric-closure-with-bound-box.rs. 2011-03-10 15:14:45 -08:00
Patrick Walton
185bcc6218 rustc: Increment the counter in trans_bind_thunk() 2011-03-10 15:09:41 -08:00
Patrick Walton
41d5094a8e rustc: Fix off-by-one error and logic error regarding type parameters in the translation of bind expressions. Un-XFAIL bind-obj-ctor.rs. 2011-03-10 14:38:06 -08:00
Patrick Walton
36b81abf61 rustc: Perform a cast in vector initialization due to changing layers of indirection. Keep test/run-pass/size-and-align.rs XFAIL'd due to a leak in rustboot. 2011-03-10 12:15:07 -08:00
Patrick Walton
7505c1fa23 rustc: Run cleanups on while expressions' condition blocks. Un-XFAIL while-prelude-drop.rs. 2011-03-10 11:46:37 -08:00
Graydon Hoare
8e8c336f93 Implement deep structural comparison through boxes and sequences. 2011-03-09 20:14:19 -08:00
Patrick Walton
874e8e3505 rustc: Have tag patterns use the type parameter information from the typechecker instead of trying to deduce it in trans. Un-XFAIL test/run-pass/generic-tag-values.rs. 2011-03-09 17:50:46 -08:00
Graydon Hoare
bafcbb101c Fold exports. 2011-03-09 17:34:22 -08:00
Marijn Haverbeke
aed40fbcd8 Have the pretty-printer take a writer stream as argument
It now uses a string writer to also fill in for
middle.ty.ast_ty_to_str
2011-03-09 16:15:55 -08:00
Patrick Walton
ea2c868744 rustc: Perform type substitutions for tag variants in dynamic_size_of() 2011-03-09 16:07:55 -08:00
Patrick Walton
1e65baad94 rustc Remove dead "llunit_ty" assignment in trans_index 2011-03-09 15:23:41 -08:00
Patrick Walton
7dc64b45b5 rustc: Make tag pattern translation generic-aware. Un-XFAIL generic-tag-alt.rs. 2011-03-09 15:17:06 -08:00
Patrick Walton
ba2e04f271 Rename confusing usage of "lltag" to "lldiscrim" in trans_pat_match() 2011-03-09 14:29:00 -08:00
Patrick Walton
603d820b85 rustc: Have demand_pat() extract type parameters from tags. Add a test case. 2011-03-09 14:09:02 -08:00
Patrick Walton
2986ed43e9 rustc: Substitute type parameters in type_of_variant(). Add a test case. 2011-03-09 13:31:25 -08:00
Patrick Walton
9aa26904b8 rustc: Remove redundant ty_params_of_tag() function 2011-03-09 13:07:06 -08:00
Patrick Walton
80fa01fb57 rustc: Perform type parameter substitutions in static_size_of_tag() 2011-03-09 12:53:12 -08:00
Patrick Walton
fcd195bb4c rustc: Don't try to load dynamically-sized types when translating tag variants. Add a test case for this. 2011-03-09 12:53:12 -08:00
Rafael Ávila de Espíndola
02f669ca67 Pass the task pointer as just another i32. 2011-03-09 15:35:54 -05:00
Rafael Ávila de Espíndola
aeca138944 swap taskptr and callee in preparation for making taskptr optional. 2011-03-09 14:16:11 -05:00
Patrick Walton
50da3ea5bc rustc: Instantiate tag patterns with the type parameters supplied by the programmer. size-and-align.rs typechecks now. 2011-03-09 11:08:59 -08:00
Patrick Walton
b828ec36fb rustc: Factor the type parameter and type lookup out of instantiate_path(), as patterns need different logic 2011-03-09 10:56:45 -08:00
Patrick Walton
3c200f3e14 rustc: Grammar police work in check_pat() error messages 2011-03-09 10:21:48 -08:00
Patrick Walton
0a22a4edbb rustc: Factor out path type instantiation so that tag patterns can use it as well 2011-03-08 18:48:17 -08:00
Patrick Walton
e64085b0a2 rustc: Fold over the paths in tag patterns so that we can resolve type variables in them 2011-03-08 18:11:00 -08:00
Patrick Walton
5b7c3b8b5d rustc: Typecheck the base part of record extension expressions. Un-XFAIL rec-extend.rs. 2011-03-08 17:34:41 -08:00
Patrick Walton
e9fe47b359 rustc: Make ann_to_type() fail if the node has no type. Miraculously, no test cases fail. 2011-03-08 17:03:00 -08:00
Patrick Walton
e62424944b rustc: Have trans get the type parameters from the annotation instead of trying to deduce them itself. Un-XFAIL generic-fn-twice.rs. 2011-03-08 16:56:19 -08:00
Graydon Hoare
01bfc3ae8b Fix generic-bind support for bound aliases and generics. 2011-03-08 16:32:39 -08:00
Patrick Walton
da9ea9ab69 rustc: Move type parameter resolution from translation into the typechecker 2011-03-08 14:55:39 -08:00
Graydon Hoare
27547c6514 Revert "Move the glue asm code to a .o file. This reduces how much asm we print"
This reverts commit 55c80e763b.
2011-03-08 13:20:16 -08:00
Rafael Ávila de Espíndola
55c80e763b Move the glue asm code to a .o file. This reduces how much asm we print
in each "translation unit".
2011-03-08 13:08:31 -08:00