Change mod_index_entry to point directly to items and view_items.
This commit is contained in:
parent
2aa36777f1
commit
359d72b4d0
4 changed files with 66 additions and 58 deletions
|
|
@ -779,14 +779,18 @@ fn fold_mod[ENV](&ENV e, ast_fold[ENV] fld, &ast._mod m) -> ast._mod {
|
|||
|
||||
let vec[@view_item] view_items = vec();
|
||||
let vec[@item] items = vec();
|
||||
auto index = m.index;
|
||||
auto index = new_str_hash[ast.mod_index_entry]();
|
||||
|
||||
for (@view_item vi in m.view_items) {
|
||||
append[@view_item](view_items, fold_view_item[ENV](e, fld, vi));
|
||||
auto new_vi = fold_view_item[ENV](e, fld, vi);
|
||||
append[@view_item](view_items, new_vi);
|
||||
ast.index_view_item(index, new_vi);
|
||||
}
|
||||
|
||||
for (@item i in m.items) {
|
||||
append[@item](items, fold_item[ENV](e, fld, i));
|
||||
auto new_item = fold_item[ENV](e, fld, i);
|
||||
append[@item](items, new_item);
|
||||
ast.index_item(index, new_item);
|
||||
}
|
||||
|
||||
ret fld.fold_mod(e, rec(view_items=view_items, items=items, index=index));
|
||||
|
|
|
|||
|
|
@ -166,14 +166,14 @@ fn lookup_name(&env e, option.t[import_map] index,
|
|||
alt (m.index.find(i)) {
|
||||
case (some[ast.mod_index_entry](?ent)) {
|
||||
alt (ent) {
|
||||
case (ast.mie_view_item(?ix)) {
|
||||
ret found_def_view(e, index, m.view_items.(ix));
|
||||
case (ast.mie_view_item(?view_item)) {
|
||||
ret found_def_view(e, index, view_item);
|
||||
}
|
||||
case (ast.mie_item(?ix)) {
|
||||
ret found_def_item(m.items.(ix));
|
||||
case (ast.mie_item(?item)) {
|
||||
ret found_def_item(item);
|
||||
}
|
||||
case (ast.mie_tag_variant(?item_idx, ?variant_idx)) {
|
||||
alt (m.items.(item_idx).node) {
|
||||
case (ast.mie_tag_variant(?item, ?variant_idx)) {
|
||||
alt (item.node) {
|
||||
case (ast.item_tag(_, ?variants, _, ?tid)) {
|
||||
auto vid = variants.(variant_idx).id;
|
||||
auto t = ast.def_variant(tid, vid);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue