aboutsummaryrefslogtreecommitdiff
path: root/src/comp/middle
diff options
context:
space:
mode:
authorPatrick Walton <[email protected]>2011-03-25 11:10:50 -0700
committerPatrick Walton <[email protected]>2011-03-25 11:11:21 -0700
commite2d6475308481a43facb0e95e9535c5602bf54f2 (patch)
tree7953ea0a80b10457168af8a4e2411863bf6cc122 /src/comp/middle
parentUpdate pretty printer for ports, channels, send and receive (diff)
downloadrust-e2d6475308481a43facb0e95e9535c5602bf54f2.tar.xz
rust-e2d6475308481a43facb0e95e9535c5602bf54f2.zip
rustc: Store cached crate metadata in the session
Diffstat (limited to 'src/comp/middle')
-rw-r--r--src/comp/middle/fold.rs11
-rw-r--r--src/comp/middle/resolve.rs14
2 files changed, 11 insertions, 14 deletions
diff --git a/src/comp/middle/fold.rs b/src/comp/middle/fold.rs
index 9525e58b..da898f4d 100644
--- a/src/comp/middle/fold.rs
+++ b/src/comp/middle/fold.rs
@@ -265,7 +265,7 @@ type ast_fold[ENV] =
// View Item folds.
(fn(&ENV e, &span sp, ident ident,
vec[@meta_item] meta_items,
- def_id id, ann a) -> @view_item) fold_view_item_use,
+ def_id id, option.t[int]) -> @view_item) fold_view_item_use,
(fn(&ENV e, &span sp, ident i, vec[ident] idents,
def_id id, option.t[def]) -> @view_item) fold_view_item_import,
@@ -883,9 +883,9 @@ fn fold_view_item[ENV](&ENV env, ast_fold[ENV] fld, @view_item vi)
}
alt (vi.node) {
- case (ast.view_item_use(?ident, ?meta_items, ?def_id, ?ann)) {
+ case (ast.view_item_use(?ident, ?meta_items, ?def_id, ?cnum)) {
ret fld.fold_view_item_use(env_, vi.span, ident, meta_items,
- def_id, ann);
+ def_id, cnum);
}
case (ast.view_item_import(?def_ident, ?idents, ?def_id,
?target_def)) {
@@ -1400,8 +1400,9 @@ fn identity_fold_item_obj[ENV](&ENV e, &span sp, ident i,
fn identity_fold_view_item_use[ENV](&ENV e, &span sp, ident i,
vec[@meta_item] meta_items,
- def_id id, ann a) -> @view_item {
- ret @respan(sp, ast.view_item_use(i, meta_items, id, a));
+ def_id id, option.t[int] cnum)
+ -> @view_item {
+ ret @respan(sp, ast.view_item_use(i, meta_items, id, cnum));
}
fn identity_fold_view_item_import[ENV](&ENV e, &span sp, ident i,
diff --git a/src/comp/middle/resolve.rs b/src/comp/middle/resolve.rs
index fb357c53..2c378c8f 100644
--- a/src/comp/middle/resolve.rs
+++ b/src/comp/middle/resolve.rs
@@ -137,11 +137,10 @@ fn find_final_def(&env e, import_map index,
}
fn found_crate(&env e, &import_map index, &span sp,
- vec[ident] idents,
- @ast.external_crate_info cinfo) -> def_wrap {
+ vec[ident] idents, int cnum) -> def_wrap {
auto len = _vec.len[ident](idents);
auto rest_idents = _vec.slice[ident](idents, 1u, len);
- auto def = creader.lookup_def(sp, cinfo, rest_idents);
+ auto def = creader.lookup_def(e.sess, sp, cnum, rest_idents);
ret def_wrap_other(def);
}
@@ -171,12 +170,9 @@ fn find_final_def(&env e, import_map index,
}
case (def_wrap_use(?vi)) {
alt (vi.node) {
- case (ast.view_item_use(_, _, _, ?ann)) {
- alt (ann) {
- case (ast.ann_crate(?cinfo)) {
- ret found_crate(e, index, sp, idents, cinfo);
- }
- }
+ case (ast.view_item_use(_, _, _, ?cnum_opt)) {
+ auto cnum = option.get[int](cnum_opt);
+ ret found_crate(e, index, sp, idents, cnum);
}
}
}