Graydon Hoare
7f5bffc3ea
Merge remote branch 'brson/recursive-elseif'
2011-03-14 16:59:04 -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
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
Brian Anderson
bbb6836da0
Merge branch 'master' into recursive-elseif
...
Conflicts:
src/comp/middle/typeck.rs
2011-03-13 19:40:25 -04:00
Graydon Hoare
ec7e84ae0d
Preserve crate directives in the parsed crate.
2011-03-11 15:49:56 -08:00
Rafael Ávila de Espíndola
74d891517b
reindex the block index.
2011-03-11 17:35:33 -05:00
Graydon Hoare
bafcbb101c
Fold exports.
2011-03-09 17:34:22 -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
Brian Anderson
9fc4db6b89
Merge branch 'master' into recursive-elseif
...
Conflicts:
src/Makefile
src/comp/front/ast.rs
src/comp/front/parser.rs
src/comp/middle/fold.rs
src/comp/middle/trans.rs
2011-03-07 21:21:01 -05:00
Graydon Hoare
90f299e710
Permit view items in native modules.
2011-03-07 11:48:43 -08:00
Graydon Hoare
d97c800e31
Make ret and fail stmts have 0 out-edges, Closes #250 .
2011-03-05 20:05:02 +00:00
Brian Anderson
c1e6f5328c
Make the expanded expression in expr_ext not optional
2011-03-02 10:28:15 -08:00
Brian Anderson
f1500e5872
Add fold, typecheck and trans for expr_ext
2011-03-02 10:28:14 -08:00
Graydon Hoare
64ab5eaaf0
Parse (and ignore) dtors on objs.
2011-03-01 17:33:17 -08:00
Rafael Ávila de Espíndola
f8f6f078c5
There are no native iterators (or at least they are not going to be supported
...
soon.).
2011-02-25 12:08:21 -05:00
Rafael Ávila de Espíndola
ffcb461370
Parse the abi in native modules.
2011-02-23 14:06:37 -05:00
Graydon Hoare
34c60b6edb
Make a tag for iterness / fnness, teach many places about it.
2011-02-18 17:30:57 -08:00
Rafael Avila de Espindola
012fa69ea5
More typechecking for native types and the needed plumbing in codegen.
2011-02-16 14:02:02 -05:00
Graydon Hoare
4a72a23171
Add basic front-end support for 'for each' loops.
2011-02-14 18:17:31 -08:00
Graydon Hoare
15a01f5c36
Add basic front-end support for expr_put.
2011-02-14 17:58:32 -08:00
Graydon Hoare
f1f33abdeb
Move all non-decl/non-expr stmts to exprs.
2011-02-14 17:46:28 -08:00
Graydon Hoare
59bce06a96
Expand expr_rec to take its optional trailing 'with' parameter.
2011-02-14 15:52:38 -08:00
Graydon Hoare
f951b52e91
Add support to pat_lit to fold.
2011-02-10 19:13:47 -08:00
Brian Anderson
378c0087ca
Parse 'be' statement. Pass tailcall tests. No actual tailcalls yet.
2011-02-10 12:12:10 -08:00
Rafael Avila de Espindola
580d527aa2
Add missing fold of native functions.
2011-02-10 14:36:38 -05:00
Rafael Ávila de Espíndola
57bb9d809b
Parse function declarations.
2011-02-04 11:10:04 -05:00
Rafael Ávila de Espíndola
dd3ed6139a
Add most of the plumbing for native items and add support for parsing native type declarations.
2011-02-02 10:43:57 -05:00
Rafael Ávila de Espíndola
4b06dc574b
Add very minimal support for native modules. For now they must be empty.
2011-02-01 16:57:33 -08:00
Graydon Hoare
70bf54bcac
Implement 'else if'
2011-02-01 16:23:48 -08:00
Brian Anderson
3fedb18c0a
Allow the else part of an expr_if to be either expr_if or expr_block
2011-02-01 00:08:47 -05:00
Brian Anderson
6b7cab3602
Teach rustc to fail
2011-01-28 11:12:57 -08:00
Rafael Ávila de Espíndola
3cac20dae3
Correctly handle "import foo = bar.zed;".
2011-01-28 11:54:59 -05:00
Rafael Ávila de Espíndola
5066937f10
First step for supporting "case (foo.bar(?zed))": Change the ast of
...
pat_tag to hold a path.
2011-01-27 15:27:56 -05:00
Graydon Hoare
546d144009
Teach AST, parser, folder about iter items.
2011-01-21 17:06:20 -08:00
Graydon Hoare
61379af1a9
Fix typo in fold.
2011-01-20 15:54:19 -08:00
Graydon Hoare
a8af013077
Adjust AST encoding, teach fold about linear for loops.
2011-01-20 15:02:12 -08:00
Rafael Ávila de Espíndola
d313e1579b
Fold function output and argument types. With this change we fail to compile
...
type lteq[T] = fn(&T a) -> bool;
with "unresolved name: T". Before we would silently get to the type checker
and assert in a unresolved ty_path.
2011-01-19 15:02:56 -05:00
Rafael Ávila de Espíndola
41b7d6d74d
One last refactoring of the import handling:
...
* Create an import resolving stage. Currently this involves a copy of the ast,
we can probably revisit this once we revisit doing full copies of the ast in
general.
* Don't repeat work. Once we resolve a import, put it on a hash table and use
it next time we are asked for it. This solves a O(n^2) behaviour in
degenerated cases.
* Once import resolution is done, the target of an import is stored on the
import itself.
2011-01-18 15:43:13 -08:00
Graydon Hoare
f3c3fc0353
Change single-ident expr_ident to greedy/fat multi-ident expr_path, to handle the module-path/value-indexing distinction.
2011-01-13 17:42:28 -08:00
Rafael Ávila de Espíndola
359d72b4d0
Change mod_index_entry to point directly to items and view_items.
2011-01-12 12:26:23 -08:00
Rafael Ávila de Espíndola
2fb09eb585
Add sufficient import support to compile some simple single-crate programs.
...
This is likely not the final solution. It does repetitive work and doesn't produce
errors for invalid but unused imports. In any case, I think it is a useful step.
2011-01-07 15:17:18 -08:00
Rafael Ávila de Espíndola
fb8eff95e2
Add the boilerplate for folding view items.
2011-01-06 11:26:29 -05:00
Graydon Hoare
0040a31076
Fix fold bug on expr_bind.
2011-01-03 18:22:27 -08:00
Graydon Hoare
1b0da12fe8
Update method-fold env with fake item_fn representing the method.
2010-12-31 15:05:22 -08:00
Graydon Hoare
a99713265b
Teach fold about ty_obj.
2010-12-30 17:46:35 -08:00
Patrick Walton
5cbf8889d0
rustc: Add bind expressions to the AST
2010-12-20 18:58:18 -08:00
Graydon Hoare
e0998847be
Teach fold about objs.
2010-12-14 16:35:31 -08:00
Patrick Walton
38ba0e6917
rustc: Add a definition ID to tag patterns
2010-12-12 16:30:34 -08:00
Patrick Walton
de118d79b6
rustc: Resolve pattern bindings
2010-12-10 18:08:32 -08:00