Graydon Hoare
eb16942c1d
Use dynamic GEP and silly offset-encoding on tydescs. Successful call into a derived tydesc.
2011-02-01 14:57:03 -08:00
Graydon Hoare
8ef22972db
Add ty_type.
2011-02-01 14:56:21 -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
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
784b2decf2
Majority of the remaining work for derived tydescs. Not quite working yet.
2011-01-31 15:03:05 -08:00
Graydon Hoare
f9b37c7348
Run cleanups in reverse order. Not presently observable, no dtors.
2011-01-31 12:06:27 -08:00
Graydon Hoare
bf9cebfc06
Fix a bug in linearize and get the captured tydescs type right.
2011-01-28 15:45:13 -08:00
Graydon Hoare
caa5b92985
Pass linearized typarams to make_generic_glue. Steps toward derived tydescs.
2011-01-28 15:28:20 -08:00
Graydon Hoare
ea42911561
Pass tydesc array into type glue fns as first arg. Required for derived tydescs to work.
2011-01-28 14:34:25 -08: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
Graydon Hoare
13b7a356f8
Add helper function for derived type descriptors.
2011-01-27 17:07:52 -08:00
Rafael Ávila de Espíndola
a2081deb2d
Simplify and fix the resolution of expr_path. With this we now get to codegen
...
in
-------------------
type foo = rec(int a);
mod m1 {
mod m2 {
const foo bar = rec(a = 4);
}
}
fn main(vec[str] args) {
log m1.m2.bar.a;
}
-------------------
2011-01-27 16:51:41 -05:00
Rafael Ávila de Espíndola
c170e7edfd
Resolve type paths.
2011-01-27 16:39:31 -05:00
Rafael Ávila de Espíndola
21208f2343
Handle paths correctly. This lets us handle one more test :-)
2011-01-27 15:56:10 -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
Rafael Ávila de Espíndola
56441e19d1
Correctly split a.b.c into its path and field access components.
2011-01-27 11:19:02 -08:00
Graydon Hoare
ce31b02113
Note issue in comments.
2011-01-27 11:18:40 -08:00
Graydon Hoare
596a97cf70
Teach typeck to handle obj item names when used as type names, not just constructor calls.
2011-01-26 11:35:30 -08:00
Rafael Ávila de Espíndola
1b82060c5e
Print an error if we try to refer to a module in an expr_path.
2011-01-25 18:16:52 -05:00
Rafael Ávila de Espíndola
9e2324ad1e
Small first step in expr_path. Call find_final_def just to detect
...
unresolved names. find_final_def is going to be extended to return the
final expr.
2011-01-25 17:54:38 -05:00
Graydon Hoare
a32d206d27
Implement autoderef in rustc. Un-XFAIL autoderef-full-lval.rs.
2011-01-24 18:03:31 -08:00
Graydon Hoare
2d7c2acf09
Switch from booleans to symbolic tags in a few places.
2011-01-24 15:26:10 -08:00
Rafael Ávila de Espíndola
d97137734b
Remove unimplemented erorr and enable test.
2011-01-24 15:29:38 -05:00
Rafael Ávila de Espíndola
c6dec379b0
Implement a bit of type parameter matching to get a simple case working.
2011-01-24 11:58:01 -08:00
Graydon Hoare
546d144009
Teach AST, parser, folder about iter items.
2011-01-21 17:06:20 -08:00
Graydon Hoare
90e329da6b
First cut at translating const items. Support the literal forms at least. Un-XFAIL const.rs.
2011-01-21 12:09:25 -08:00
Graydon Hoare
c72d6a3e7a
Merge remote branch 'espindola/params'
2011-01-21 11:07:09 -08:00
Rafael Ávila de Espíndola
7672813708
Change the return type of the getter method so that we can get to the type
...
params.
2011-01-21 13:54:44 -05:00
Graydon Hoare
51542b279f
Fix bug in trans_for, un-XFAIL linear-for-loop.rs.
2011-01-21 08:25:13 -08:00
Graydon Hoare
6daec4004a
First cut of trans_for.
2011-01-21 07:59:57 -08:00
Graydon Hoare
8bc57fa85e
Tweak effect-checking rules in rustboot, remove/rewrite/re-auth impure cases in trans.rs
2011-01-21 07:59:56 -08:00
Graydon Hoare
2c27feb76a
M-x indent-region on trans.rs.
2011-01-21 07:59:48 -08:00
Graydon Hoare
45fd05ac42
Teach ty and typeck about linear for loops.
2011-01-20 15:54:38 -08:00
Graydon Hoare
61379af1a9
Fix typo in fold.
2011-01-20 15:54:19 -08:00
Graydon Hoare
c9d2eceb45
Teach resolve about linear for loops.
2011-01-20 15:17:26 -08:00
Graydon Hoare
a8af013077
Adjust AST encoding, teach fold about linear for loops.
2011-01-20 15:02:12 -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
Rafael Ávila de Espíndola
35d53b7eb1
Look at the type params of an item_ty when resolving.
2011-01-19 16:13:33 -05: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
Graydon Hoare
a0aedd14c7
Twiddle comment.
2011-01-18 17:19:04 -08:00
Graydon Hoare
9cc00d5f6c
Fix bug (I think) when unifying ty_local and ty_param.
2011-01-18 17:18:51 -08: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
e92298187b
Add bzero glue and preliminary code for dynamic size/align calculations.
2011-01-18 15:38:35 -08:00
Graydon Hoare
3a920e7ca8
Fix missing case in ty.
2011-01-17 17:24:47 -08:00
Graydon Hoare
bc21965c98
Use homebrew memcpy, not llvm intrinsic. Can't run the latter on a rust stack.
2011-01-17 17:24:33 -08:00
Graydon Hoare
58bf592dcc
Fix a couple bugs in parametric returns.
2011-01-17 15:54:52 -08:00
Graydon Hoare
5f591c3767
Allocate and reload retslots. Copy into them on polymorphic returns.
2011-01-17 15:22:45 -08:00
Rafael Ávila de Espíndola
9f3caed8a0
Enable more tests.
2011-01-17 18:13:55 -05:00
Graydon Hoare
a8be673a9c
Whitespace cleanup.
2011-01-17 14:35:57 -08:00