@@ -45,23 +45,23 @@ pub(crate) fn status(db: &RootDatabase, file_id: Option<FileId>) -> String {
45
45
46
46
if let Some ( file_id) = file_id {
47
47
format_to ! ( buf, "\n File info:\n " ) ;
48
- let krate = crate :: parent_module:: crate_for ( db, file_id) . pop ( ) ;
49
- match krate {
50
- Some ( krate ) => {
51
- let crate_graph = db . crate_graph ( ) ;
52
- let display_crate = | krate : CrateId | match & crate_graph [ krate ] . display_name {
53
- Some ( it ) => format ! ( "{}({:?})" , it , krate ) ,
54
- None => format ! ( "{:?}" , krate ) ,
55
- } ;
56
- format_to ! ( buf , "Crate: {} \n ", display_crate ( krate) ) ;
57
- let deps = crate_graph [ krate ]
58
- . dependencies
59
- . iter ( )
60
- . map ( |dep| format ! ( "{}={:?}" , dep . name , dep . crate_id ) )
61
- . format ( ", " ) ;
62
- format_to ! ( buf , "Dependencies: {} \n ", deps ) ;
63
- }
64
- None => format_to ! ( buf, "Does not belong to any crate" ) ,
48
+ let crates = crate :: parent_module:: crate_for ( db, file_id) ;
49
+ if crates . is_empty ( ) {
50
+ format_to ! ( buf , "Does not belong to any crate" ) ;
51
+ }
52
+ let crate_graph = db . crate_graph ( ) ;
53
+ for krate in crates {
54
+ let display_crate = | krate : CrateId | match & crate_graph [ krate ] . display_name {
55
+ Some ( it ) => format ! ( "{}({:?})" , it , krate ) ,
56
+ None => format ! ( "{:?} ", krate) ,
57
+ } ;
58
+ format_to ! ( buf , "Crate: {} \n " , display_crate ( krate ) ) ;
59
+ let deps = crate_graph [ krate ]
60
+ . dependencies
61
+ . iter ( )
62
+ . map ( |dep| format ! ( "{}={:?} ", dep . name , dep . crate_id ) )
63
+ . format ( ", " ) ;
64
+ format_to ! ( buf, "Dependencies: {} \n " , deps ) ;
65
65
}
66
66
}
67
67
0 commit comments