aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle/resolve.rs
Commit message (Collapse)AuthorAgeFilesLines
* Extract ast.is_exported from the resolve moduleBrian Anderson2011-05-021-18/+1
|
* Un-revert "Use different syntax for checks that matter to typestate", fixing ↵Patrick Walton2011-05-021-1/+1
| | | | | | the problem. This reverts commit d08b443fffb1181d8d45ae5d061412f202dd4118.
* Revert "Use different syntax for checks that matter to typestate"Graydon Hoare2011-05-021-1/+1
| | | | This reverts commit aa25f22f197682de3b18fc4c8ba068d1feda220f. It broke stage2, not sure why yet.
* Use different syntax for checks that matter to typestateTim Chevalier2011-05-021-1/+1
| | | | | | | | | | This giant commit changes the syntax of Rust to use "assert" for "check" expressions that didn't mean anything to the typestate system, and continue using "check" for checks that are used as part of typestate checking. Most of the changes are just replacing "check" with "assert" in test cases and rustc.
* Remove the search direction from resolve's fold environmentBrian Anderson2011-05-011-36/+31
| | | | | It's not actually involved in the fold so it can just be passed between the functions that need it.
* Hide unexported tag variantsBrian Anderson2011-05-011-3/+5
|
* Implement simple module exportBrian Anderson2011-05-011-12/+60
|
* replace error logging with log_err in stdlib and rustcMarijn Haverbeke2011-04-191-2/+2
|
* rustc: Switch to indices for type parametersPatrick Walton2011-04-121-21/+31
|
* Remove unused function.Rafael Ávila de Espíndola2011-04-081-17/+0
|
* Remove unused function.Rafael Ávila de Espíndola2011-04-081-12/+0
|
* Continued sketching out code for checking states against preconditions.Tim Chevalier2011-04-061-1/+2
| | | | | | | | | It's still sketchy. I added a typestate annotation field to statements tagged stmt_decl or stmt_expr, because a stmt_decl statement has a typestate that's different from that of its child node. This necessitated trivial changes to a bunch of other files all over to the compiler. I also added a few small standard library functions, some of which I didn't actually end up using but which I thought might be useful anyway.
* rustc: Add a type annotation to tag itemsPatrick Walton2011-03-311-4/+4
|
* Improve line comment positioningMarijn Haverbeke2011-03-311-2/+2
| | | | This involved making ast.variant spanned.
* rustc: Thread an item-to-type mapping throughout the typechecking and ↵Patrick Walton2011-03-301-39/+60
| | | | translation phases
* rustc: Partially resolve external module importsPatrick Walton2011-03-291-4/+88
|
* Another go at changing compile-command, this time using RBUILD env var.Graydon Hoare2011-03-251-1/+1
|
* Revert "Bulk-edit compile commands in emacs chatter to point to assumed ↵Graydon Hoare2011-03-251-1/+1
| | | | | | build/ dir off src root." This reverts commit 846f2e2ba994268725f38c36fa12f1a09f21615c.
* Bulk-edit compile commands in emacs chatter to point to assumed build/ dir ↵Graydon Hoare2011-03-251-1/+1
| | | | off src root.
* rustc: Store cached crate metadata in the sessionPatrick Walton2011-03-251-9/+5
|
* Start hooking resolve into creater.Graydon Hoare2011-03-241-5/+23
|
* Modify native_item_fn to handle trailing linkage names that differ from the ↵Graydon Hoare2011-03-201-2/+2
| | | | item name (used in win32 build of std.dll)
* rustc: Add an annotation for the crate definition to view_item_usePatrick Walton2011-03-151-2/+2
|
* Add support for indexing tags in blocks.Rafael Ávila de Espíndola2011-03-111-8/+36
|
* Handle resolving to native modules.Rafael Ávila de Espíndola2011-03-101-0/+7
|
* Permit view items in native modules.Graydon Hoare2011-03-071-3/+11
|
* More typechecking for native types and the needed plumbing in codegen.Rafael Avila de Espindola2011-02-161-2/+2
|
* Add basic front-end support for 'for each' loops.Graydon Hoare2011-02-141-0/+3
|
* Teach resolve about ty params on tags.Graydon Hoare2011-02-141-0/+8
|
* Add missing fold of native functions.Rafael Avila de Espindola2011-02-101-12/+35
|
* Add native modules to resolve. With this hello world gets to typecheck.Rafael Avila de Espindola2011-02-071-19/+58
|
* Fix expressions with paths with more than one element.Rafael Avila de Espindola2011-02-071-2/+1
|
* Parse function declarations.Rafael Ávila de Espíndola2011-02-041-1/+1
|
* Correctly handle "import foo = bar.zed;".Rafael Ávila de Espíndola2011-01-281-6/+6
|
* Simplify and fix the resolution of expr_path. With this we now get to codegenRafael Ávila de Espíndola2011-01-271-19/+10
| | | | | | | | | | | | | | | 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; } -------------------
* Resolve type paths.Rafael Ávila de Espíndola2011-01-271-18/+3
|
* Handle paths correctly. This lets us handle one more test :-)Rafael Ávila de Espíndola2011-01-271-13/+7
|
* First step for supporting "case (foo.bar(?zed))": Change the ast ofRafael Ávila de Espíndola2011-01-271-5/+7
| | | | pat_tag to hold a path.
* Correctly split a.b.c into its path and field access components.Rafael Ávila de Espíndola2011-01-271-12/+14
|
* Print an error if we try to refer to a module in an expr_path.Rafael Ávila de Espíndola2011-01-251-1/+11
|
* Small first step in expr_path. Call find_final_def just to detectRafael Ávila de Espíndola2011-01-251-24/+38
| | | | | unresolved names. find_final_def is going to be extended to return the final expr.
* Remove unimplemented erorr and enable test.Rafael Ávila de Espíndola2011-01-241-5/+0
|
* Implement a bit of type parameter matching to get a simple case working.Rafael Ávila de Espíndola2011-01-241-4/+0
|
* Teach resolve about linear for loops.Graydon Hoare2011-01-201-2/+26
|
* Look at the type params of an item_ty when resolving.Rafael Ávila de Espíndola2011-01-191-1/+8
|
* Twiddle comment.Graydon Hoare2011-01-181-1/+1
|
* One last refactoring of the import handling:Rafael Ávila de Espíndola2011-01-181-79/+109
| | | | | | | | | | | | | * 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.
* Enable more tests.Rafael Ávila de Espíndola2011-01-171-1/+1
|
* 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.
* Some misc cleanups:Rafael Ávila de Espíndola2011-01-171-25/+26
| | | | | * Remove unused argument * Move option.t wrapping to outer functions.