diff options
| author | Marijn Haverbeke <[email protected]> | 2011-05-09 12:40:09 +0200 |
|---|---|---|
| committer | Marijn Haverbeke <[email protected]> | 2011-05-11 12:32:37 +0200 |
| commit | e9c12ab1d019b42e5427e31bfa49f1f799e84165 (patch) | |
| tree | 7f7ce69c7619060559d2da99fb78fa49c4467aa6 /src/comp/middle/fold.rs | |
| parent | Reuse a single work buffer every time the SHA1 message block is processed. (diff) | |
| download | rust-e9c12ab1d019b42e5427e31bfa49f1f799e84165.tar.xz rust-e9c12ab1d019b42e5427e31bfa49f1f799e84165.zip | |
Rewrite comp/middle/resolve.rs
* Cleans up the algorithm
* Move first pass to walk (second still folds)
* Support part of a type/value namespace split
(crate metadata and module indices still need to be taught about this)
* Remove a few blatant inefficiencies (import tables being recreated for
every lookup, most importantly)
Diffstat (limited to 'src/comp/middle/fold.rs')
| -rw-r--r-- | src/comp/middle/fold.rs | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/comp/middle/fold.rs b/src/comp/middle/fold.rs index 2f4cbafa..62521067 100644 --- a/src/comp/middle/fold.rs +++ b/src/comp/middle/fold.rs @@ -291,8 +291,7 @@ type ast_fold[ENV] = (fn(&ENV e, &span sp, &ident i, &vec[ident] idents, - &def_id id, - &Option.t[def]) -> @view_item) fold_view_item_import, + &def_id id) -> @view_item) fold_view_item_import, (fn(&ENV e, &span sp, &ident i) -> @view_item) fold_view_item_export, @@ -981,10 +980,9 @@ fn fold_view_item[ENV](&ENV env, &ast_fold[ENV] fld, &@view_item vi) ret fld.fold_view_item_use(env_, vi.span, ident, meta_items, def_id, cnum); } - case (ast.view_item_import(?def_ident, ?idents, ?def_id, - ?target_def)) { + case (ast.view_item_import(?def_ident, ?idents, ?def_id)) { ret fld.fold_view_item_import(env_, vi.span, def_ident, idents, - def_id, target_def); + def_id); } case (ast.view_item_export(?def_ident)) { @@ -1538,10 +1536,9 @@ fn identity_fold_view_item_use[ENV](&ENV e, &span sp, &ident i, } fn identity_fold_view_item_import[ENV](&ENV e, &span sp, &ident i, - &vec[ident] is, &def_id id, - &Option.t[def] target_def) + &vec[ident] is, &def_id id) -> @view_item { - ret @respan(sp, ast.view_item_import(i, is, id, target_def)); + ret @respan(sp, ast.view_item_import(i, is, id)); } fn identity_fold_view_item_export[ENV](&ENV e, &span sp, &ident i) @@ -1747,7 +1744,7 @@ fn new_identity_fold[ENV]() -> ast_fold[ENV] { fold_view_item_use = bind identity_fold_view_item_use[ENV](_,_,_,_,_,_), fold_view_item_import = - bind identity_fold_view_item_import[ENV](_,_,_,_,_,_), + bind identity_fold_view_item_import[ENV](_,_,_,_,_), fold_view_item_export = bind identity_fold_view_item_export[ENV](_,_,_), |