assert that package qualifications are valid in platform modules

This commit is contained in:
Folkert 2023-09-06 22:14:58 +02:00
parent 07622eb6fd
commit 7af401dd98
No known key found for this signature in database
GPG key ID: 1F17F6FFD112B97C
2 changed files with 25 additions and 1 deletions

View file

@ -2195,6 +2195,30 @@ fn update<'a>(
exposes_ids, exposes_ids,
.. ..
} => { } => {
let undefined_shorthands: Vec<_> = header
.package_qualified_imported_modules
.iter()
.filter_map(|pqim| match pqim {
PackageQualified::Unqualified(_) => None,
PackageQualified::Qualified(shorthand, _) => {
if header.packages.contains_key(shorthand)
|| shorthand == &config_shorthand
{
None
} else {
Some(pqim)
}
}
})
.collect();
// shorthands must be defined by the module!
assert!(
undefined_shorthands.is_empty(),
"{undefined_shorthands:?} not in {:?} ",
&header.packages
);
work.extend(state.dependencies.notify_package(config_shorthand)); work.extend(state.dependencies.notify_package(config_shorthand));
let is_prebuilt = if header.is_root_module { let is_prebuilt = if header.is_root_module {

View file

@ -2,7 +2,7 @@ platform "effects"
requires {} { main : Effect.Effect {} } requires {} { main : Effect.Effect {} }
exposes [] exposes []
packages {} packages {}
imports [pf.Effect] imports [Effect]
provides [mainForHost] provides [mainForHost]
mainForHost : Effect.Effect {} mainForHost : Effect.Effect {}