about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-07-07 21:03:09 -0700
committerBrian Anderson <banderson@mozilla.com>2011-07-08 09:37:00 -0700
commit51e60b65658c02eb3ca7fdcb3ffb40f0141bd76f (patch)
tree7ed71e1966002967247fb47c2bb3df7c5a8a6119 /src/comp
parent639cf1a8ff1c61e1169c43e5a506efc01725397b (diff)
downloadrust-51e60b65658c02eb3ca7fdcb3ffb40f0141bd76f.tar.gz
rust-51e60b65658c02eb3ca7fdcb3ffb40f0141bd76f.zip
Comment creader
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/metadata/creader.rs57
1 files changed, 29 insertions, 28 deletions
diff --git a/src/comp/metadata/creader.rs b/src/comp/metadata/creader.rs
index 5af9688f414..21b70fd468f 100644
--- a/src/comp/metadata/creader.rs
+++ b/src/comp/metadata/creader.rs
@@ -28,6 +28,35 @@ import common::*;
 export read_crates;
 export list_file_metadata;
 
+// Traverses an AST, reading all the information about use'd crates and native
+// libraries necessary for later resolving, typechecking, linking, etc.
+fn read_crates(session::session sess, resolve::crate_map crate_map,
+               &ast::crate crate) {
+    auto e =
+        @rec(sess=sess,
+             crate_map=crate_map,
+             crate_cache=@std::map::new_str_hash[int](),
+             library_search_paths=sess.get_opts().library_search_paths,
+             mutable next_crate_num=1);
+    auto v =
+        rec(visit_view_item_pre=bind visit_view_item(e, _),
+            visit_item_pre=bind visit_item(e, _)
+            with walk::default_visitor());
+    walk::walk_crate(v, crate);
+}
+
+// A diagnostic function for dumping crate metadata to an output stream
+fn list_file_metadata(str path, io::writer out) {
+    alt (get_metadata_section(path)) {
+        case (option::some(?bytes)) {
+            decoder::list_crate_metadata(bytes, out);
+        }
+        case (option::none) {
+            out.write_str("Could not find metadata in " + path + ".\n");
+        }
+    }
+}
+
 fn metadata_matches(&vec[u8] crate_data,
                     &(@ast::meta_item)[] metas) -> bool {
     auto attrs = decoder::get_crate_attributes(crate_data);
@@ -199,34 +228,6 @@ fn visit_item(env e, &@ast::item i) {
     }
 }
 
-// Reads external crates referenced by "use" directives.
-fn read_crates(session::session sess, resolve::crate_map crate_map,
-               &ast::crate crate) {
-    auto e =
-        @rec(sess=sess,
-             crate_map=crate_map,
-             crate_cache=@std::map::new_str_hash[int](),
-             library_search_paths=sess.get_opts().library_search_paths,
-             mutable next_crate_num=1);
-    auto v =
-        rec(visit_view_item_pre=bind visit_view_item(e, _),
-            visit_item_pre=bind visit_item(e, _)
-            with walk::default_visitor());
-    walk::walk_crate(v, crate);
-}
-
-
-fn list_file_metadata(str path, io::writer out) {
-    alt (get_metadata_section(path)) {
-        case (option::some(?bytes)) {
-            decoder::list_crate_metadata(bytes, out);
-        }
-        case (option::none) {
-            out.write_str("Could not find metadata in " + path + ".\n");
-        }
-    }
-}
-
 
 // Local Variables:
 // mode: rust