@@ -136,16 +136,13 @@ fn library_symbols(db: &dyn SymbolsDatabase, source_root_id: SourceRootId) -> Ar
136
136
// the module or crate indices for those in salsa unless we need to.
137
137
. for_each ( |module| symbol_collector. collect ( module) ) ;
138
138
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 ( ) ) )
142
140
}
143
141
144
142
fn module_symbols ( db : & dyn SymbolsDatabase , module : Module ) -> Arc < SymbolIndex > {
145
143
let _p = tracing:: info_span!( "module_symbols" ) . entered ( ) ;
146
144
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) ) )
149
146
}
150
147
151
148
pub 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> {
228
225
229
226
#[ derive( Default ) ]
230
227
pub struct SymbolIndex {
231
- symbols : Vec < FileSymbol > ,
228
+ symbols : Box < [ FileSymbol ] > ,
232
229
map : fst:: Map < Vec < u8 > > ,
233
230
}
234
231
@@ -253,7 +250,7 @@ impl Hash for SymbolIndex {
253
250
}
254
251
255
252
impl SymbolIndex {
256
- fn new ( mut symbols : Vec < FileSymbol > ) -> SymbolIndex {
253
+ fn new ( mut symbols : Box < [ FileSymbol ] > ) -> SymbolIndex {
257
254
fn cmp ( lhs : & FileSymbol , rhs : & FileSymbol ) -> Ordering {
258
255
let lhs_chars = lhs. name . chars ( ) . map ( |c| c. to_ascii_lowercase ( ) ) ;
259
256
let rhs_chars = rhs. name . chars ( ) . map ( |c| c. to_ascii_lowercase ( ) ) ;
0 commit comments