mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-03 19:58:18 +00:00
working completions
This commit is contained in:
parent
f5e32f7e16
commit
3027fc2284
6 changed files with 238 additions and 29 deletions
|
@ -2537,6 +2537,14 @@ fn update<'a>(
|
|||
}
|
||||
|
||||
report_unused_imported_modules(&mut state, module_id, &constrained_module);
|
||||
state
|
||||
.module_cache
|
||||
.imported_modules
|
||||
.insert(module_id, constrained_module.imported_modules.clone());
|
||||
state
|
||||
.module_cache
|
||||
.exposed_imports
|
||||
.insert(module_id, constrained_module.module.exposed_imports.clone());
|
||||
|
||||
state
|
||||
.module_cache
|
||||
|
@ -2583,6 +2591,10 @@ fn update<'a>(
|
|||
.module_cache
|
||||
.type_problems
|
||||
.insert(module_id, solved_module.problems);
|
||||
state
|
||||
.module_cache
|
||||
.exposes
|
||||
.insert(module_id, solved_module.exposed_vars_by_symbol.clone());
|
||||
|
||||
let should_include_expects = (!loc_expects.is_empty() || !loc_dbgs.is_empty()) && {
|
||||
let modules = state.arc_modules.lock();
|
||||
|
@ -2737,6 +2749,7 @@ fn update<'a>(
|
|||
state.module_cache.checked.insert(
|
||||
module_id,
|
||||
CheckedModule {
|
||||
aliases: solved_module.aliases,
|
||||
solved_subs,
|
||||
decls,
|
||||
abilities_store,
|
||||
|
@ -3400,6 +3413,10 @@ fn finish(
|
|||
timings: state.timings,
|
||||
docs_by_module,
|
||||
abilities_store,
|
||||
imported_modules: state.module_cache.imported_modules,
|
||||
exposed_imports: state.module_cache.exposed_imports,
|
||||
imports: state.module_cache.imports,
|
||||
exposes: state.module_cache.exposes,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -46,6 +46,11 @@ pub struct LoadedModule {
|
|||
pub docs_by_module: Vec<(ModuleId, ModuleDocumentation)>,
|
||||
pub abilities_store: AbilitiesStore,
|
||||
pub typechecked: MutMap<ModuleId, CheckedModule>,
|
||||
|
||||
pub imports: MutMap<ModuleId, MutSet<ModuleId>>,
|
||||
pub imported_modules: MutMap<ModuleId, MutMap<ModuleId, Region>>,
|
||||
pub exposed_imports: MutMap<ModuleId, MutMap<Symbol, Region>>,
|
||||
pub exposes: MutMap<ModuleId, Vec<(Symbol, Variable)>>,
|
||||
}
|
||||
|
||||
impl LoadedModule {
|
||||
|
@ -132,6 +137,10 @@ pub struct TypeCheckedModule<'a> {
|
|||
|
||||
#[derive(Debug)]
|
||||
pub struct CheckedModule {
|
||||
/// all aliases and their definitions. this has to include non-exposed aliases
|
||||
/// because exposed aliases can depend on non-exposed ones)
|
||||
pub aliases: MutMap<Symbol, (bool, Alias)>,
|
||||
|
||||
pub solved_subs: Solved<Subs>,
|
||||
pub decls: Declarations,
|
||||
pub abilities_store: AbilitiesStore,
|
||||
|
|
|
@ -9,7 +9,9 @@ use roc_module::ident::ModuleName;
|
|||
use roc_module::symbol::{ModuleId, PQModuleName, Symbol};
|
||||
use roc_mono::ir::ExternalSpecializations;
|
||||
use roc_problem::Severity;
|
||||
use roc_region::all::Region;
|
||||
use roc_solve_problem::TypeError;
|
||||
use roc_types::subs::Variable;
|
||||
use roc_types::types::Alias;
|
||||
use std::path::PathBuf;
|
||||
|
||||
|
@ -33,6 +35,9 @@ pub(crate) struct ModuleCache<'a> {
|
|||
|
||||
/// Various information
|
||||
pub(crate) imports: MutMap<ModuleId, MutSet<ModuleId>>,
|
||||
pub(crate) exposes: MutMap<ModuleId, Vec<(Symbol, Variable)>>,
|
||||
pub(crate) imported_modules: MutMap<ModuleId, MutMap<ModuleId, Region>>,
|
||||
pub(crate) exposed_imports: MutMap<ModuleId, MutMap<Symbol, Region>>,
|
||||
pub(crate) top_level_thunks: MutMap<ModuleId, MutSet<Symbol>>,
|
||||
pub(crate) documentation: VecMap<ModuleId, ModuleDocumentation>,
|
||||
pub(crate) can_problems: MutMap<ModuleId, Vec<roc_problem::can::Problem>>,
|
||||
|
@ -103,6 +108,9 @@ impl Default for ModuleCache<'_> {
|
|||
late_specializations: Default::default(),
|
||||
external_specializations_requested: Default::default(),
|
||||
imports: Default::default(),
|
||||
imported_modules: Default::default(),
|
||||
exposed_imports: Default::default(),
|
||||
exposes: Default::default(),
|
||||
top_level_thunks: Default::default(),
|
||||
documentation: Default::default(),
|
||||
can_problems: Default::default(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue