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
Rafael Ávila de Espíndola
58490d7fa0
Fix the last known (to me) bug in import resolution. We were not properly
...
dropping the inner part of the environment when an intermediate item resolved
in an outer scope.
2011-01-17 13:33:13 -08:00
Graydon Hoare
d1fdf0ab23
Teach copy_ty to finish via memcpy of tydesc-provided size.
2011-01-17 13:30:29 -08:00
Rafael Ávila de Espíndola
57b281533d
Some misc cleanups:
...
* Remove unused argument
* Move option.t wrapping to outer functions.
2011-01-17 14:58:18 -05:00
Graydon Hoare
4b8779ea95
Pass tydescs to parametric fns, along with (dummy, presently) retptr when needed. Can call simple parametric fn now.
2011-01-14 16:50:37 -08:00
Rafael Ávila de Espíndola
5b9eda4a41
Fix the import handling in "complex" cases. When looking a.b.c and 'a' is a
...
module, we should look for 'b' *just* in the module 'a' and then continue
resolving b.c in the environment created by updating *with* a.
Still not 100% correct, but getting there.
2011-01-14 17:34:00 -05:00
Graydon Hoare
c8a2c44a8e
Expand generic info in lval_result.
2011-01-14 14:17:57 -08:00
Graydon Hoare
bc416284ac
Trim long lines.
2011-01-14 13:59:35 -08:00
Graydon Hoare
b039be1e5c
Pass tydescs to parametric fns.
2011-01-14 13:58:19 -08:00
Rafael Ávila de Espíndola
bdcb9d9b53
Make lookup non recursive and instead move the recursion just to
...
find_final_def. Use the fact that the recursion is in a simpler function to
detected import loops and exit.
2011-01-14 11:10:06 -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
c1f2e29596
Produce better errors for invalid imports.
2011-01-12 12:27:31 -08:00
Rafael Ávila de Espíndola
c489abedb4
Call find_final_def directly in fold_view_item_import. It is both cleaner and
...
faster.
2011-01-12 12:26:59 -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
Patrick Walton
2aa36777f1
Figure out what tydescs we need to pass when translating parametric function calls
2011-01-12 11:05:38 -08:00
Rafael Ávila de Espíndola
34643eeac8
Fix another import case we got wrong: The local environment should not
...
interfere with the import statements.
2011-01-11 13:59:52 -08:00
Rafael Ávila de Espíndola
c5a766f133
Fix two invalid import cases we were not detecting:
...
* If an import was unused we would never print any errors for it.
* We would keep the existing environment in scope when descending 'foo.bar'
and would find 'bar' in the global environment if there was no 'bar' in
'foo'.
2011-01-11 13:58:39 -08:00
Graydon Hoare
3b0e207109
Drop closures. Un-XFAIL bind-interior.rs.
2011-01-07 16:26:30 -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
Graydon Hoare
3c61793b5a
Synthesize closure thunks, and pass closure pointer into fn calls.
2011-01-07 15:12:23 -08:00
Graydon Hoare
27b4c3f962
Whitespace cleanup, and copy target into closure.
2011-01-06 12:55:27 -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
62c79fb216
Sketch closure-forming logic for nontrivial bindings.
2011-01-05 18:57:28 -08:00