about summary refs log tree commit diff
path: root/src/rustc
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-04-09 15:06:38 -0700
committerBrian Anderson <banderson@mozilla.com>2012-04-09 15:06:38 -0700
commita1d59704ed12282e7f00c137e03538bc397fc8e3 (patch)
treeb8e459d16844c3e98fcb9358d48b02b3da1aeb45 /src/rustc
parenteb181527b46452925c92350cbb885fdae0756495 (diff)
downloadrust-a1d59704ed12282e7f00c137e03538bc397fc8e3.tar.gz
rust-a1d59704ed12282e7f00c137e03538bc397fc8e3.zip
rustc: Add more creader logging
Diffstat (limited to 'src/rustc')
-rw-r--r--src/rustc/metadata/creader.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/rustc/metadata/creader.rs b/src/rustc/metadata/creader.rs
index 435a31994ea..a24180238b7 100644
--- a/src/rustc/metadata/creader.rs
+++ b/src/rustc/metadata/creader.rs
@@ -28,6 +28,7 @@ fn read_crates(sess: session::session, crate: ast::crate) {
                                    visit_item: bind visit_item(e, _)
                                       with *visit::default_simple_visitor()});
     visit::visit_crate(crate, (), v);
+    dump_crates(e.crate_cache);
     warn_if_multiple_versions(sess, copy e.crate_cache);
 }
 
@@ -38,6 +39,21 @@ type cache_entry = {
     metas: @[@ast::meta_item]
 };
 
+fn dump_crates(crate_cache: [cache_entry]) {
+    #debug("resolved crates:");
+    for crate_cache.each {|entry|
+        #debug("cnum: %?", entry.cnum);
+        #debug("span: %?", entry.span);
+        #debug("hash: %?", entry.hash);
+        let attrs = [
+            attr::mk_attr(attr::mk_list_item("link", *entry.metas))
+        ];
+        for attr::find_linkage_attrs(attrs).each {|attr|
+            #debug("meta: %s", pprust::attr_to_str(attr));
+        }
+    }
+}
+
 fn warn_if_multiple_versions(sess: session::session,
                              crate_cache: [cache_entry]) {
     import either::*;
@@ -78,6 +94,7 @@ type env = @{sess: session::session,
 fn visit_view_item(e: env, i: @ast::view_item) {
     alt i.node {
       ast::view_item_use(ident, meta_items, id) {
+        #debug("resolving use stmt. ident: %?, meta: %?", ident, meta_items);
         let cnum = resolve_crate(e, ident, meta_items, "", i.span);
         cstore::add_use_stmt_cnum(e.sess.cstore, id, cnum);
       }