File tree Expand file tree Collapse file tree 2 files changed +14
-1
lines changed
Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -166,6 +166,8 @@ fn main() {
166166 )
167167 . init ( ) ;
168168
169+ log:: info!( "Log level set to {}" , log:: max_level( ) ) ;
170+
169171 if cli. no_derived && cli. only == Some ( Action :: Derived ) {
170172 log:: error!( "--no-derived and --only=derived are mutually exclusive" ) ;
171173 std:: process:: exit ( 1 ) ;
Original file line number Diff line number Diff line change @@ -75,6 +75,8 @@ impl DumpStatistics {
7575 }
7676
7777 fn close_subclasses ( & mut self ) -> usize {
78+ log:: info!( "Computing subclass closure" ) ;
79+
7880 let mut added = 0 ;
7981 let direct_superclasses = self
8082 . classes
@@ -85,6 +87,7 @@ impl DumpStatistics {
8587
8688 while let Some ( class) = class_queue. pop_front ( ) {
8789 let record = self . classes . entry ( class) . or_default ( ) ;
90+ let mut done = HashSet :: new ( ) ;
8891 let mut superclasses = record
8992 . direct_superclasses
9093 . iter ( )
@@ -93,10 +96,16 @@ impl DumpStatistics {
9396
9497 while let Some ( superclass) = superclasses. pop_front ( ) {
9598 record. superclasses . insert ( superclass) ;
99+ done. insert ( superclass) ;
96100 added += 1 ;
97101
98102 if let Some ( new_superclasses) = direct_superclasses. get ( & superclass) {
99- superclasses. extend ( new_superclasses. iter ( ) . cloned ( ) ) ;
103+ superclasses. extend (
104+ new_superclasses
105+ . iter ( )
106+ . filter ( |superclass| !done. contains ( superclass) )
107+ . cloned ( ) ,
108+ ) ;
100109 }
101110 }
102111 }
@@ -116,6 +125,8 @@ impl DumpStatistics {
116125 } )
117126 . collect :: < Vec < _ > > ( ) ;
118127
128+ log:: info!( "Found {} non-empty classes" , classes. len( ) ) ;
129+
119130 for ( class, superclasses) in classes {
120131 for super_class in superclasses {
121132 let record = self . classes . entry ( super_class) . or_default ( ) ;
You can’t perform that action at this time.
0 commit comments