Skip to content

Commit 6602cff

Browse files
committed
---
yaml --- r: 2466 b: refs/heads/master c: 9cb2015 h: refs/heads/master v: v3
1 parent 3bdccdb commit 6602cff

File tree

2 files changed

+15
-14
lines changed

2 files changed

+15
-14
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 7f222423b7795cd8788b59a34542f19745bd4863
2+
refs/heads/master: 9cb20153a8e8cdcbf0e88f5575c9b1f7b37175da

trunk/src/comp/middle/resolve.rs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import front.ast.ann;
66
import front.creader;
77
import driver.session.session;
88
import util.common.new_def_hash;
9+
import util.common.new_int_hash;
910
import util.common.span;
1011
import util.typestate_ann.ts_ann;
1112
import std.Map.hashmap;
@@ -56,8 +57,8 @@ fn new_ext_hash() -> ext_hash {
5657
ret std.Map.mk_hashmap[tup(def_id,str),def](hash, eq);
5758
}
5859

59-
type env = rec(hashmap[def_id,import_state] imports,
60-
hashmap[def_id,@wrap_mod] mod_map,
60+
type env = rec(hashmap[ast.def_num,import_state] imports,
61+
hashmap[ast.def_num,@wrap_mod] mod_map,
6162
hashmap[def_id,vec[ident]] ext_map,
6263
ext_hash ext_cache,
6364
session sess);
@@ -72,8 +73,8 @@ tag namespace {
7273
}
7374

7475
fn resolve_crate(session sess, @ast.crate crate) -> @ast.crate {
75-
auto e = @rec(imports = new_def_hash[import_state](),
76-
mod_map = new_def_hash[@wrap_mod](),
76+
auto e = @rec(imports = new_int_hash[import_state](),
77+
mod_map = new_int_hash[@wrap_mod](),
7778
ext_map = new_def_hash[vec[ident]](),
7879
ext_cache = new_ext_hash(),
7980
sess = sess);
@@ -107,10 +108,10 @@ fn map_crate(&@env e, &ast.crate c) {
107108
*sc = cons[scope](scope_item(i), @*sc);
108109
alt (i.node) {
109110
case (ast.item_mod(_, ?md, ?defid)) {
110-
e.mod_map.insert(defid, @wmod(md));
111+
e.mod_map.insert(defid._1, @wmod(md));
111112
}
112113
case (ast.item_native_mod(_, ?nmd, ?defid)) {
113-
e.mod_map.insert(defid, @wnmod(nmd));
114+
e.mod_map.insert(defid._1, @wnmod(nmd));
114115
}
115116
case (_) {}
116117
}
@@ -121,15 +122,15 @@ fn map_crate(&@env e, &ast.crate c) {
121122
fn visit_view_item(@env e, @mutable list[scope] sc, &@ast.view_item i) {
122123
alt (i.node) {
123124
case (ast.view_item_import(_, ?ids, ?defid)) {
124-
e.imports.insert(defid, todo(i, *sc));
125+
e.imports.insert(defid._1, todo(i, *sc));
125126
}
126127
case (_) {}
127128
}
128129
}
129130
}
130131

131132
fn resolve_imports(&env e) {
132-
for each (@tup(def_id, import_state) it in e.imports.items()) {
133+
for each (@tup(ast.def_num, import_state) it in e.imports.items()) {
133134
alt (it._1) {
134135
case (todo(?item, ?sc)) {
135136
resolve_import(e, item, sc);
@@ -185,7 +186,7 @@ fn resolve_names(&@env e, &ast.crate c) -> @ast.crate {
185186
}
186187

187188
fn lookup_import(&env e, def_id defid, namespace ns) -> Option.t[def] {
188-
alt (e.imports.get(defid)) {
189+
alt (e.imports.get(defid._1)) {
189190
case (todo(?item, ?sc)) {
190191
resolve_import(e, item, sc);
191192
ret lookup_import(e, defid, ns);
@@ -207,7 +208,7 @@ fn resolve_import(&env e, &@ast.view_item it, &list[scope] sc) {
207208
defid = _defid; ids = _ids;
208209
}
209210
}
210-
e.imports.insert(defid, resolving(it.span));
211+
e.imports.insert(defid._1, resolving(it.span));
211212

212213
auto n_idents = Vec.len(ids);
213214
auto end_id = ids.(n_idents - 1u);
@@ -242,7 +243,7 @@ fn resolve_import(&env e, &@ast.view_item it, &list[scope] sc) {
242243
if (val == none[def] && typ == none[def]) {
243244
unresolved(e, sp, id, "import");
244245
}
245-
e.imports.insert(defid, resolved(val, typ));
246+
e.imports.insert(defid._1, resolved(val, typ));
246247
}
247248
}
248249

@@ -610,14 +611,14 @@ fn lookup_in_mod(&env e, def m, ident id, namespace ns, dir dr)
610611
}
611612
alt (m) {
612613
case (ast.def_mod(?defid)) {
613-
alt (*e.mod_map.get(defid)) {
614+
alt (*e.mod_map.get(defid._1)) {
614615
case (wmod(?m)) {
615616
ret lookup_in_regular_mod(e, m, id, ns, dr);
616617
}
617618
}
618619
}
619620
case (ast.def_native_mod(?defid)) {
620-
alt (*e.mod_map.get(defid)) {
621+
alt (*e.mod_map.get(defid._1)) {
621622
case (wnmod(?m)) {
622623
ret lookup_in_native_mod(e, m, id, ns);
623624
}

0 commit comments

Comments
 (0)