aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle/fold.rs
diff options
context:
space:
mode:
authorMarijn Haverbeke <[email protected]>2011-05-09 12:40:09 +0200
committerMarijn Haverbeke <[email protected]>2011-05-11 12:32:37 +0200
commite9c12ab1d019b42e5427e31bfa49f1f799e84165 (patch)
tree7f7ce69c7619060559d2da99fb78fa49c4467aa6 /src/comp/middle/fold.rs
parentReuse a single work buffer every time the SHA1 message block is processed. (diff)
downloadrust-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.rs15
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](_,_,_),