Don't resolve builtin modules imported from platform interfaces as namespaced

This commit is contained in:
Ayaz Hafiz 2022-09-21 17:04:13 -05:00
parent 38ab8de37c
commit 2a508721ed
No known key found for this signature in database
GPG Key ID: 0E2A37416A25EF58

View File

@ -3732,14 +3732,21 @@ fn send_header<'a>(
// Also build a list of imported_values_to_expose (like `bar` above.) // Also build a list of imported_values_to_expose (like `bar` above.)
for (qualified_module_name, exposed_idents, region) in imported.into_iter() { for (qualified_module_name, exposed_idents, region) in imported.into_iter() {
let cloned_module_name = qualified_module_name.module.clone(); let cloned_module_name = qualified_module_name.module.clone();
let pq_module_name = match qualified_module_name.opt_package { let pq_module_name = if qualified_module_name.is_builtin() {
None => match opt_shorthand { // If this is a builtin, it must be unqualified, and we should *never* prefix it
Some(shorthand) => { // with the package shorthand! The user intended to import the module as-is here.
PQModuleName::Qualified(shorthand, qualified_module_name.module) debug_assert!(qualified_module_name.opt_package.is_none());
} PQModuleName::Unqualified(qualified_module_name.module)
None => PQModuleName::Unqualified(qualified_module_name.module), } else {
}, match qualified_module_name.opt_package {
Some(package) => PQModuleName::Qualified(package, cloned_module_name), None => match opt_shorthand {
Some(shorthand) => {
PQModuleName::Qualified(shorthand, qualified_module_name.module)
}
None => PQModuleName::Unqualified(qualified_module_name.module),
},
Some(package) => PQModuleName::Qualified(package, cloned_module_name),
}
}; };
let module_id = module_ids.get_or_insert(&pq_module_name); let module_id = module_ids.get_or_insert(&pq_module_name);