iter 23.1.2: load_workspace auto-injects prelude module
This commit is contained in:
@@ -1140,6 +1140,19 @@ fn workspace_error_to_diagnostic(
|
||||
"type": type_repr,
|
||||
})),
|
||||
),
|
||||
// Iter 23.1: the user named a module `prelude`, which the
|
||||
// loader reserves for the auto-injected prelude module.
|
||||
W::ReservedModuleName { name } => Some(
|
||||
ailang_check::Diagnostic::error(
|
||||
"reserved-module-name",
|
||||
format!(
|
||||
"module name {name:?} is reserved (auto-injected by the loader)"
|
||||
),
|
||||
)
|
||||
.with_ctx(serde_json::json!({
|
||||
"module": name,
|
||||
})),
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -846,7 +846,9 @@ fn workspace_lists_imported_modules() {
|
||||
);
|
||||
|
||||
let modules = v["modules"].as_array().expect("modules must be array");
|
||||
assert_eq!(modules.len(), 2, "expected 2 modules: {stdout}");
|
||||
// Iter 23.1: the loader auto-injects the `prelude` module, so
|
||||
// the count is the user's two modules plus prelude.
|
||||
assert_eq!(modules.len(), 3, "expected 3 modules: {stdout}");
|
||||
|
||||
let names: Vec<&str> = modules
|
||||
.iter()
|
||||
@@ -854,6 +856,7 @@ fn workspace_lists_imported_modules() {
|
||||
.collect();
|
||||
assert!(names.contains(&"ws_main"), "ws_main missing: {names:?}");
|
||||
assert!(names.contains(&"ws_lib"), "ws_lib missing: {names:?}");
|
||||
assert!(names.contains(&"prelude"), "prelude missing: {names:?}");
|
||||
}
|
||||
|
||||
/// Guards Iter 5b: `ail check examples/ws_main.ail.json --json` must
|
||||
|
||||
Reference in New Issue
Block a user