aboutsummaryrefslogtreecommitdiff
path: root/src/comp
Commit message (Collapse)AuthorAgeFilesLines
...
* Teach resolve about linear for loops.Graydon Hoare2011-01-201-2/+26
|
* Adjust AST encoding, teach fold about linear for loops.Graydon Hoare2011-01-203-12/+39
|
* typoRafael Ávila de Espíndola2011-01-201-1/+1
|
* Teach ast and parser about linear for expressions.Graydon Hoare2011-01-202-28/+56
|
* Implement dynamic GEP enough to permit expr_field to work on tup(T,T,T).Graydon Hoare2011-01-192-2/+127
|
* Look at the type params of an item_ty when resolving.Rafael Ávila de Espíndola2011-01-191-1/+8
|
* Fold function output and argument types. With this change we fail to compileRafael Ávila de Espíndola2011-01-191-3/+15
| | | | | | | 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.
* Twiddle comment.Graydon Hoare2011-01-181-1/+1
|
* Fix bug (I think) when unifying ty_local and ty_param.Graydon Hoare2011-01-181-1/+13
|
* One last refactoring of the import handling:Rafael Ávila de Espíndola2011-01-184-88/+121
| | | | | | | | | | | | | * 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.
* Add bzero glue and preliminary code for dynamic size/align calculations.Graydon Hoare2011-01-182-15/+174
|
* Fix missing case in ty.Graydon Hoare2011-01-171-0/+5
|
* Use homebrew memcpy, not llvm intrinsic. Can't run the latter on a rust stack.Graydon Hoare2011-01-172-32/+66
|
* Fix a couple bugs in parametric returns.Graydon Hoare2011-01-171-11/+11
|
* Allocate and reload retslots. Copy into them on polymorphic returns.Graydon Hoare2011-01-171-19/+35
|
* Enable more tests.Rafael Ávila de Espíndola2011-01-171-1/+1
|
* Whitespace cleanup.Graydon Hoare2011-01-171-9/+9
|
* Fix the last known (to me) bug in import resolution. We were not properlyRafael Ávila de Espíndola2011-01-171-12/+27
| | | | | dropping the inner part of the environment when an intermediate item resolved in an outer scope.
* Teach copy_ty to finish via memcpy of tydesc-provided size.Graydon Hoare2011-01-171-11/+24
|
* Some misc cleanups:Rafael Ávila de Espíndola2011-01-171-25/+26
| | | | | * Remove unused argument * Move option.t wrapping to outer functions.
* Pass tydescs to parametric fns, along with (dummy, presently) retptr when ↵Graydon Hoare2011-01-141-66/+82
| | | | needed. Can call simple parametric fn now.
* Fix the import handling in "complex" cases. When looking a.b.c and 'a' is aRafael Ávila de Espíndola2011-01-141-5/+22
| | | | | | | 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.
* Expand generic info in lval_result.Graydon Hoare2011-01-141-12/+17
|
* Trim long lines.Graydon Hoare2011-01-141-2/+2
|
* Pass tydescs to parametric fns.Graydon Hoare2011-01-141-6/+33
|
* Make lookup non recursive and instead move the recursion just toRafael Ávila de Espíndola2011-01-141-60/+88
| | | | | find_final_def. Use the fact that the recursion is in a simpler function to detected import loops and exit.
* Change single-ident expr_ident to greedy/fat multi-ident expr_path, to ↵Graydon Hoare2011-01-137-98/+170
| | | | handle the module-path/value-indexing distinction.
* Produce better errors for invalid imports.Rafael Ávila de Espíndola2011-01-121-0/+6
|
* Call find_final_def directly in fold_view_item_import. It is both cleaner andRafael Ávila de Espíndola2011-01-121-1/+1
| | | | faster.
* Change mod_index_entry to point directly to items and view_items.Rafael Ávila de Espíndola2011-01-124-58/+66
|
* Figure out what tydescs we need to pass when translating parametric function ↵Patrick Walton2011-01-122-4/+57
| | | | calls
* Fix another import case we got wrong: The local environment should notRafael Ávila de Espíndola2011-01-111-27/+47
| | | | interfere with the import statements.
* Fix two invalid import cases we were not detecting:Rafael Ávila de Espíndola2011-01-111-12/+29
| | | | | | | * 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'.
* Sketch support for reading multi-file crates in rustc. Add test, not yet ↵Graydon Hoare2011-01-101-32/+138
| | | | working.
* Drop closures. Un-XFAIL bind-interior.rs.Graydon Hoare2011-01-071-7/+54
|
* Add sufficient import support to compile some simple single-crate programs.Rafael Ávila de Espíndola2011-01-073-37/+115
| | | | | 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.
* Synthesize closure thunks, and pass closure pointer into fn calls.Graydon Hoare2011-01-071-30/+170
|
* Whitespace cleanup, and copy target into closure.Graydon Hoare2011-01-061-7/+10
|
* Add the boilerplate for folding view items.Rafael Ávila de Espíndola2011-01-061-1/+65
|
* Sketch closure-forming logic for nontrivial bindings.Graydon Hoare2011-01-052-4/+79
|
* Translate trivial bindings. Un-XFAIL bind-trivial.rs.Graydon Hoare2011-01-051-8/+20
|
* Use uniform pair representation of functions everywhere, including static ↵Graydon Hoare2011-01-052-38/+132
| | | | functions.
* rustc: Allow the type unification handler to handle both expected and actual ↵Patrick Walton2011-01-042-4/+20
| | | | param types
* Correct function pointer type in closure.Graydon Hoare2011-01-041-2/+2
|
* Merge remote branch 'espindola/import'Graydon Hoare2011-01-043-5/+9
|\
| * Add names from imports to the namespace.Rafael Ávila de Espíndola2011-01-043-5/+9
| |
* | rustc: Add an item type accessorPatrick Walton2011-01-041-0/+38
|/
* Add support for looking up a name introduced by a 'use'.Rafael Ávila de Espíndola2011-01-043-11/+38
| | | | | | | | | | 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(); }
* Refactor the view_item code so that it is similar to the code used forRafael Ávila de Espíndola2011-01-042-30/+40
| | | | parsing regular items.
* Rename use_or_import to view_item.Rafael Ávila de Espíndola2011-01-042-8/+8
|