Commit graph

60 commits

Author SHA1 Message Date
Patrick Walton
2ca66718ce rustc: Consider native types to be scalar 2011-03-17 11:46:21 -07:00
Patrick Walton
55587a554c rustc: Sort object methods when parsing textual types in the AST 2011-03-17 11:40:05 -07:00
Graydon Hoare
54587bdccb Switch all vases of vec += elt to vec += vec. Prohibit former in rustboot. Tweak std lib vec fns in process. 2011-03-16 14:58:02 -07:00
Graydon Hoare
7f5bffc3ea Merge remote branch 'brson/recursive-elseif' 2011-03-14 16:59:04 -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
7464237256 Add folding and type checking for ports and chans 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
8e8c336f93 Implement deep structural comparison through boxes and sequences. 2011-03-09 20:14:19 -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
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
4654faa67c rustc: Add a slot for explicit type parameter instantations to the typechecker's AST annotation 2011-03-08 12:42:56 -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
Marijn Haverbeke
0624f9db4a Add a pretty-printer
Adds a -pp option to the compiler which will cause it to simply
pretty-print the given file.
2011-03-07 12:58:08 -08:00
Rafael Ávila de Espíndola
8047957b99 Construct the wrappers to native functions. Hello world now works :-) 2011-03-07 15:37:40 -05:00
Brian Anderson
d39da6f978 Remove typestate workarounds 2011-03-06 15:13:35 -08:00
Graydon Hoare
d97c800e31 Make ret and fail stmts have 0 out-edges, Closes #250. 2011-03-05 20:05:02 +00:00
Graydon Hoare
652cb48475 Assortment of additional work on vec-append. Not done yet. 2011-03-03 18:18:59 -08:00
Patrick Walton
04a0a6fbef Revert "rustc: Add support for folding over tag types" as it's unnecessary. Oops. 2011-03-03 17:09:20 -08:00
Patrick Walton
f6682280f3 rustc: Add support for folding over tag types 2011-03-03 16:54:15 -08:00
Rafael Ávila de Espíndola
da8058ff83 Handle native types in calls. 2011-03-03 16:44:15 -05:00
Graydon Hoare
dddeba19d3 Sketch out some more pieces of vec-append. 2011-03-02 16:42:19 -08:00
Brian Anderson
f1500e5872 Add fold, typecheck and trans for expr_ext 2011-03-02 10:28:14 -08:00
Patrick Walton
8d8b3d985a rustc: Mark tags that have subtypes with dynamic size as dynamic 2011-02-28 19:07:26 -08:00
Patrick Walton
0120571e90 rustc: Make the tag info table keyed by both tag ID and type parameter. Also fix a bug that was causing all tags to compare equal. 2011-02-25 19:42:26 -08:00
Rafael Ávila de Espíndola
081c3aa76d Pass the abi of native functions all the way to codegen. 2011-02-25 15:58:08 -05:00
Patrick Walton
19b2850388 rustc: Perform type parameter substitutions when emitting glue for generic tags. Un-XFAIL generic-tag.rs. 2011-02-24 19:25:05 -08:00
Patrick Walton
b4d6589e73 Implement type descriptor binding. Un-XFAIL test/run-pass/generic-bind.rs. 2011-02-23 17:08:02 -08:00
Rafael Ávila de Espíndola
6849abcf7d Handle the new ty_native_fn in type check. 2011-02-23 11:59:07 -05:00
Graydon Hoare
34c60b6edb Make a tag for iterness / fnness, teach many places about it. 2011-02-18 17:30:57 -08:00
Patrick Walton
3aba50ff33 Implement Robinson's algorithm for type unification. Closes #227. 2011-02-18 14:52:33 -08:00
Patrick Walton
10befcd9a4 Add type parameters to tag types 2011-02-17 16:23:31 -08:00
Rafael Avila de Espindola
07c7888037 Don't add the rust arguments to native functions. We now produce the
correct arguments for native functions.
2011-02-16 16:16:11 -05:00
Rafael Avila de Espindola
293637139f Add missing case to ty_to_str.
Disable test that now fails because we produce undefined references to the
native functions.
2011-02-16 15:00:40 -05: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
Rafael Avila de Espindola
bd56dd9f2a Add missing case to unify. This gets hello world to codegen. 2011-02-14 11:22:10 -05:00
Graydon Hoare
c9956a65b4 Teach ty and typeck about pat_lit. 2011-02-10 19:22:30 -08:00
Rafael Avila de Espindola
0d27eb1341 Add type checking for native types. 2011-02-10 16:22:08 -08:00
Graydon Hoare
9d576993f3 Add a fixme for last commit. 2011-02-07 14:16:40 -08:00
Graydon Hoare
d7f118135b Iterate type unification to drive the types a bit further down into the leaves of results with residual vars. Cheap but kinda works. 2011-02-07 14:11:43 -08:00
Graydon Hoare
70bf54bcac Implement 'else if' 2011-02-01 16:23:48 -08:00
Graydon Hoare
8ef22972db Add ty_type. 2011-02-01 14:56:21 -08:00
Graydon Hoare
ef50d0e668 More work on derived tydescs. Can compile simple tests with generic objects. 2011-01-31 18:06:35 -08:00
Graydon Hoare
45fd05ac42 Teach ty and typeck about linear for loops. 2011-01-20 15:54:38 -08:00
Graydon Hoare
9d3ebd6a57 Implement dynamic GEP enough to permit expr_field to work on tup(T,T,T). 2011-01-19 16:29:14 -08:00
Graydon Hoare
9cc00d5f6c Fix bug (I think) when unifying ty_local and ty_param. 2011-01-18 17:18:51 -08:00
Graydon Hoare
3a920e7ca8 Fix missing case in ty. 2011-01-17 17:24:47 -08:00