File tree Expand file tree Collapse file tree 2 files changed +18
-2
lines changed Expand file tree Collapse file tree 2 files changed +18
-2
lines changed Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ use back::svh::Svh;
17
17
use driver:: session:: Session ;
18
18
use driver:: { driver, config} ;
19
19
use metadata:: cstore;
20
- use metadata:: cstore:: CStore ;
20
+ use metadata:: cstore:: { CStore , CrateSource } ;
21
21
use metadata:: decoder;
22
22
use metadata:: loader;
23
23
use metadata:: loader:: CratePaths ;
@@ -68,10 +68,15 @@ impl<'a> visit::Visitor<()> for Env<'a> {
68
68
69
69
fn dump_crates ( cstore : & CStore ) {
70
70
debug ! ( "resolved crates:" ) ;
71
- cstore. iter_crate_data ( |_, data| {
71
+ cstore. iter_crate_data_origins ( |_, data, opt_source | {
72
72
debug ! ( "crate_id: {}" , data. crate_id( ) ) ;
73
73
debug ! ( " cnum: {}" , data. cnum) ;
74
74
debug ! ( " hash: {}" , data. hash( ) ) ;
75
+ opt_source. map ( |cs| {
76
+ let CrateSource { dylib, rlib, cnum : _ } = cs;
77
+ dylib. map ( |dl| debug ! ( " dylib: {}" , dl. display( ) ) ) ;
78
+ rlib. map ( |rl| debug ! ( " rlib: {}" , rl. display( ) ) ) ;
79
+ } ) ;
75
80
} )
76
81
}
77
82
Original file line number Diff line number Diff line change @@ -114,6 +114,17 @@ impl CStore {
114
114
}
115
115
}
116
116
117
+ /// Like `iter_crate_data`, but passes source paths (if available) as well.
118
+ pub fn iter_crate_data_origins ( & self , i : |ast:: CrateNum ,
119
+ & crate_metadata ,
120
+ Option < CrateSource > |) {
121
+ for ( & k, v) in self . metas . borrow ( ) . iter ( ) {
122
+ let origin = self . get_used_crate_source ( k) ;
123
+ origin. as_ref ( ) . map ( |cs| { assert ! ( k == cs. cnum) ; } ) ;
124
+ i ( k, & * * v, origin) ;
125
+ }
126
+ }
127
+
117
128
pub fn add_used_crate_source ( & self , src : CrateSource ) {
118
129
let mut used_crate_sources = self . used_crate_sources . borrow_mut ( ) ;
119
130
if !used_crate_sources. contains ( & src) {
You can’t perform that action at this time.
0 commit comments