1653 Commits

Author SHA1 Message Date
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
Graydon Hoare
f3f63da7c8 Translate trivial bindings. Un-XFAIL bind-trivial.rs. 2011-01-05 16:06:01 -08:00
Graydon Hoare
5d2a6c73ca Use uniform pair representation of functions everywhere, including static functions. 2011-01-05 15:31:35 -08:00
Patrick Walton
b7d2fe57cf rustc: Allow the type unification handler to handle both expected and actual param types 2011-01-04 16:53:28 -08:00
Graydon Hoare
116dd9e338 Correct function pointer type in closure. 2011-01-04 15:29:38 -08:00
Graydon Hoare
2ec0b724c4 Merge remote branch 'espindola/import' 2011-01-04 15:07:38 -08:00
Rafael Ávila de Espíndola
7c8f99fdc1 Add names from imports to the namespace. 2011-01-04 17:58:10 -05:00
Patrick Walton
29fb238a39 rustc: Add an item type accessor 2011-01-04 12:46:11 -08:00
Rafael Ávila de Espíndola
e0fe271d34 Add support for looking up a name introduced by a 'use'.
With this we go from "error: unresolved name: foo" to
"unimplemented definition variant for: foo" in

use foo;
fn main(vec[str] args) {
   foo.bar();
}
2011-01-04 11:35:13 -05:00
Graydon Hoare
cfb97b3393 Begin sketching translation of bind_expr. No captures yet, also crashy. 2011-01-03 22:39:43 -08:00
Graydon Hoare
546f1e98cb Typecheck expr_bind. 2011-01-03 18:22:56 -08:00
Graydon Hoare
771d76e552 Add type accessors for fn types. 2011-01-03 18:22:39 -08:00
Graydon Hoare
0040a31076 Fix fold bug on expr_bind. 2011-01-03 18:22:27 -08:00
Graydon Hoare
10a130e6c1 Translate local item decls. 2010-12-31 15:16:11 -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
ad889ba3ae Change resolve errs to span_errs. 2010-12-31 14:43:43 -08:00
Graydon Hoare
bd536ba85f Free objects by indirectly dropping fields via enclosed tydesc first. 2010-12-31 13:01:45 -08:00
Graydon Hoare
f072718cfe Replace arg Load with load_non_structural in obj ctor. 2010-12-31 12:20:18 -08:00
Graydon Hoare
065542378c Teach ty.unify about ty_obj. 2010-12-31 10:26:29 -08:00
Graydon Hoare
aa1d8d0768 Move unify_fn logic out-of-line. 2010-12-31 09:48:54 -08:00
Graydon Hoare
91809a17ac Teach typeck.ast_ty_to_ty about ty_obj. 2010-12-30 17:46:56 -08:00
Graydon Hoare
a99713265b Teach fold about ty_obj. 2010-12-30 17:46:35 -08:00
Graydon Hoare
1f2585f479 Teach trans to access object fields. 2010-12-30 17:01:20 -08:00
Graydon Hoare
9676fb2d0a Assign method types properly by sorted-order. 2010-12-30 17:00:59 -08:00
Graydon Hoare
153efb58bc Teach typeck to check obj field accesses. 2010-12-30 15:28:19 -08:00
Graydon Hoare
bc9db2e972 Teach resolve to find obj fields and ty params from methods. 2010-12-30 15:27:52 -08:00
Patrick Walton
a634b21563 rustc: Make parametric return types go through an out pointer 2010-12-29 19:08:35 -05:00
Rafael Ávila de Espíndola
2c6dd18224 Add a -shared option to rustc and don't try to look for main if it is given. 2010-12-29 11:21:16 -05:00
Graydon Hoare
5c7cd6419c Modify translation of obj methods to accept an initial recursive-self-typed (in the LLVM sense) obj argument. 2010-12-23 17:31:16 -08:00