Use VecMap over MutMap to store module docs

This commit is contained in:
Richard Feldman 2022-12-24 11:15:32 -05:00
parent b9f8253c39
commit c0dd801db6
No known key found for this signature in database
GPG key ID: F1F21AA5B1D9E43B

View file

@ -144,7 +144,7 @@ struct ModuleCache<'a> {
/// Various information /// Various information
imports: MutMap<ModuleId, MutSet<ModuleId>>, imports: MutMap<ModuleId, MutSet<ModuleId>>,
top_level_thunks: MutMap<ModuleId, MutSet<Symbol>>, top_level_thunks: MutMap<ModuleId, MutSet<Symbol>>,
documentation: MutMap<ModuleId, ModuleDocumentation>, documentation: VecMap<ModuleId, ModuleDocumentation>,
can_problems: MutMap<ModuleId, Vec<roc_problem::can::Problem>>, can_problems: MutMap<ModuleId, Vec<roc_problem::can::Problem>>,
type_problems: MutMap<ModuleId, Vec<TypeError>>, type_problems: MutMap<ModuleId, Vec<TypeError>>,
@ -630,7 +630,7 @@ pub struct LoadedModule {
pub resolved_implementations: ResolvedImplementations, pub resolved_implementations: ResolvedImplementations,
pub sources: MutMap<ModuleId, (PathBuf, Box<str>)>, pub sources: MutMap<ModuleId, (PathBuf, Box<str>)>,
pub timings: MutMap<ModuleId, ModuleTiming>, pub timings: MutMap<ModuleId, ModuleTiming>,
pub docs_by_module: MutMap<ModuleId, ModuleDocumentation>, pub docs_by_module: VecMap<ModuleId, ModuleDocumentation>,
pub abilities_store: AbilitiesStore, pub abilities_store: AbilitiesStore,
} }
@ -856,7 +856,7 @@ enum Msg<'a> {
exposed_types_storage: ExposedTypesStorageSubs, exposed_types_storage: ExposedTypesStorageSubs,
resolved_implementations: ResolvedImplementations, resolved_implementations: ResolvedImplementations,
dep_idents: IdentIdsByModule, dep_idents: IdentIdsByModule,
documentation: MutMap<ModuleId, ModuleDocumentation>, documentation: VecMap<ModuleId, ModuleDocumentation>,
abilities_store: AbilitiesStore, abilities_store: AbilitiesStore,
}, },
FoundSpecializations { FoundSpecializations {
@ -2773,7 +2773,7 @@ fn update<'a>(
} }
let documentation = { let documentation = {
let mut empty = MutMap::default(); let mut empty = VecMap::default();
std::mem::swap(&mut empty, &mut state.module_cache.documentation); std::mem::swap(&mut empty, &mut state.module_cache.documentation);
empty empty
@ -3388,7 +3388,7 @@ fn finish(
exposed_types_storage: ExposedTypesStorageSubs, exposed_types_storage: ExposedTypesStorageSubs,
resolved_implementations: ResolvedImplementations, resolved_implementations: ResolvedImplementations,
dep_idents: IdentIdsByModule, dep_idents: IdentIdsByModule,
documentation: MutMap<ModuleId, ModuleDocumentation>, documentation: VecMap<ModuleId, ModuleDocumentation>,
abilities_store: AbilitiesStore, abilities_store: AbilitiesStore,
) -> LoadedModule { ) -> LoadedModule {
let module_ids = Arc::try_unwrap(state.arc_modules) let module_ids = Arc::try_unwrap(state.arc_modules)