diff --git a/compiler/load/src/file.rs b/compiler/load/src/file.rs index 14b5b0bf41..9258dc6a78 100644 --- a/compiler/load/src/file.rs +++ b/compiler/load/src/file.rs @@ -621,6 +621,7 @@ pub struct LoadedModule { pub type_problems: MutMap>, pub declarations_by_id: MutMap>, pub exposed_to_host: MutMap, + pub exposed_aliases: MutMap, pub header_sources: MutMap)>, pub sources: MutMap)>, pub timings: MutMap, @@ -763,6 +764,7 @@ enum Msg<'a> { FinishedAllTypeChecking { solved_subs: Solved, exposed_vars_by_symbol: MutMap, + exposed_aliases_by_symbol: MutMap, documentation: MutMap, }, FoundSpecializations { @@ -1510,6 +1512,7 @@ where Msg::FinishedAllTypeChecking { solved_subs, exposed_vars_by_symbol, + exposed_aliases_by_symbol, documentation, } => { // We're done! There should be no more messages pending. @@ -1525,6 +1528,7 @@ where return Ok(LoadResult::TypeChecked(finish( state, solved_subs, + exposed_aliases_by_symbol, exposed_vars_by_symbol, documentation, ))); @@ -1939,6 +1943,7 @@ fn update<'a>( .send(Msg::FinishedAllTypeChecking { solved_subs, exposed_vars_by_symbol: solved_module.exposed_vars_by_symbol, + exposed_aliases_by_symbol: solved_module.aliases, documentation, }) .map_err(|_| LoadingProblem::MsgChannelDied)?; @@ -2263,6 +2268,7 @@ fn finish_specialization( fn finish( state: State, solved: Solved, + exposed_aliases_by_symbol: MutMap, exposed_vars_by_symbol: MutMap, documentation: MutMap, ) -> LoadedModule { @@ -2290,6 +2296,10 @@ fn finish( .map(|(id, (path, src))| (id, (path, src.into()))) .collect(); + dbg!(&exposed_vars_by_symbol); + let exposed_aliases = exposed_aliases_by_symbol; + // todo!("Get exposed aliases"); + LoadedModule { module_id: state.root_id, interns, @@ -2298,6 +2308,7 @@ fn finish( type_problems: state.module_cache.type_problems, declarations_by_id: state.declarations_by_id, exposed_to_host: exposed_vars_by_symbol.into_iter().collect(), + exposed_aliases, header_sources, sources, timings: state.timings, diff --git a/docs/src/lib.rs b/docs/src/lib.rs index f96f89a6c2..05cb4aba02 100644 --- a/docs/src/lib.rs +++ b/docs/src/lib.rs @@ -63,12 +63,23 @@ pub fn generate(filenames: Vec, std_lib: StdLib, build_dir: &Path) { // Write each package's module docs html file for loaded_module in package.modules.iter_mut() { - let exposed_values = loaded_module + let mut exposed_values = loaded_module .exposed_to_host .iter() .map(|(symbol, _)| symbol.ident_string(&loaded_module.interns).to_string()) .collect::>(); + let mut exposed_aliases = loaded_module + .exposed_aliases + .iter() + .map(|(symbol, _)| symbol.ident_string(&loaded_module.interns).to_string()) + .collect::>(); + + let mut exports = Vec::new(); + + exports.append(&mut exposed_values); + exports.append(&mut exposed_aliases); + for module in loaded_module.documentation.values_mut() { let module_dir = build_dir.join(module.name.replace(".", "/").as_str()); @@ -83,7 +94,7 @@ pub fn generate(filenames: Vec, std_lib: StdLib, build_dir: &Path) { ) .replace( "", - render_main_content(&loaded_module.interns, &exposed_values, module).as_str(), + render_main_content(&loaded_module.interns, &exports, module).as_str(), ); fs::write(module_dir.join("index.html"), rendered_module)