aboutsummaryrefslogtreecommitdiff
path: root/src/comp/front/creader.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/front/creader.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/front/creader.rs')
-rw-r--r--src/comp/front/creader.rs10
1 files changed, 2 insertions, 8 deletions
diff --git a/src/comp/front/creader.rs b/src/comp/front/creader.rs
index 832ef131..dd913b53 100644
--- a/src/comp/front/creader.rs
+++ b/src/comp/front/creader.rs
@@ -635,14 +635,8 @@ fn list_crate_metadata(vec[u8] bytes, IO.writer out) {
fn describe_def(&EBML.doc items, ast.def_id id) -> str {
if (id._0 != 0) {ret "external";}
- alt (maybe_find_item(id._1 as int, items)) {
- case (Option.some[EBML.doc](?item)) {
- ret item_kind_to_str(item_kind(item));
- }
- case (Option.none[EBML.doc]) {
- ret "??"; // Native modules don't seem to get item entries.
- }
- }
+ auto item = find_item(id._1, items);
+ ret item_kind_to_str(item_kind(item));
}
fn item_kind_to_str(u8 kind) -> str {