Fix hang on qualified import with builtin name

This commit is contained in:
Agus Zubiaga 2024-07-03 12:40:53 -03:00
parent f69d39dffc
commit 13ba59a4cb
No known key found for this signature in database
3 changed files with 33 additions and 2 deletions

View File

@ -11782,6 +11782,30 @@ In roc, functions are always written as a lambda, like{}
"###
);
test_report!(
import_qualified_builtin,
indoc!(
r#"
app [main] { pf: platform "../../tests/platform.roc" }
import pf.Bool
main =
""
"#
),
@r###"
 FILE NOT FOUND in tmp/import_qualified_builtin/../../tests/Bool.roc 
I am looking for this file, but it's not there:
tmp/import_qualified_builtin/../../tests/Bool.roc
Is the file supposed to be there? Maybe there is a typo in the file
name?
"###
);
test_report!(
invalid_toplevel_cycle,
indoc!(

View File

@ -3599,9 +3599,9 @@ fn load_module<'a>(
macro_rules! load_builtins {
($($name:literal, $module_id:path)*) => {
match module_name.as_inner().as_str() {
match module_name.unqualified().map(|name| name.as_str()) {
$(
$name => {
Some($name) => {
let (module_id, msg) = load_builtin_module(
arena,
module_ids,

View File

@ -462,6 +462,13 @@ impl<'a, T> PackageQualified<'a, T> {
}
}
pub fn unqualified(&self) -> Option<&T> {
match self {
PackageQualified::Unqualified(name) => Some(name),
PackageQualified::Qualified(_, _) => None,
}
}
pub fn package_shorthand(&self) -> Option<&'a str> {
match self {
PackageQualified::Unqualified(_) => None,