@@ -136,16 +136,13 @@ fn library_symbols(db: &dyn SymbolsDatabase, source_root_id: SourceRootId) -> Ar
136136 // the module or crate indices for those in salsa unless we need to.
137137 . for_each ( |module| symbol_collector. collect ( module) ) ;
138138
139- let mut symbols = symbol_collector. finish ( ) ;
140- symbols. shrink_to_fit ( ) ;
141- Arc :: new ( SymbolIndex :: new ( symbols) )
139+ Arc :: new ( SymbolIndex :: new ( symbol_collector. finish ( ) ) )
142140}
143141
144142fn module_symbols ( db : & dyn SymbolsDatabase , module : Module ) -> Arc < SymbolIndex > {
145143 let _p = tracing:: info_span!( "module_symbols" ) . entered ( ) ;
146144
147- let symbols = SymbolCollector :: collect_module ( db. upcast ( ) , module) ;
148- Arc :: new ( SymbolIndex :: new ( symbols) )
145+ Arc :: new ( SymbolIndex :: new ( SymbolCollector :: collect_module ( db. upcast ( ) , module) ) )
149146}
150147
151148pub fn crate_symbols ( db : & dyn SymbolsDatabase , krate : Crate ) -> Box < [ Arc < SymbolIndex > ] > {
@@ -228,7 +225,7 @@ pub fn world_symbols(db: &RootDatabase, query: Query) -> Vec<FileSymbol> {
228225
229226#[ derive( Default ) ]
230227pub struct SymbolIndex {
231- symbols : Vec < FileSymbol > ,
228+ symbols : Box < [ FileSymbol ] > ,
232229 map : fst:: Map < Vec < u8 > > ,
233230}
234231
@@ -253,7 +250,7 @@ impl Hash for SymbolIndex {
253250}
254251
255252impl SymbolIndex {
256- fn new ( mut symbols : Vec < FileSymbol > ) -> SymbolIndex {
253+ fn new ( mut symbols : Box < [ FileSymbol ] > ) -> SymbolIndex {
257254 fn cmp ( lhs : & FileSymbol , rhs : & FileSymbol ) -> Ordering {
258255 let lhs_chars = lhs. name . chars ( ) . map ( |c| c. to_ascii_lowercase ( ) ) ;
259256 let rhs_chars = rhs. name . chars ( ) . map ( |c| c. to_ascii_lowercase ( ) ) ;
0 commit comments