✓
Passing This code compiles and runs correctly.
Code
// Test 644: Ambiguous Override Error (MUST_FAIL)
// Tests that multiple non-default definitions with the same name is an error
//
// When multiple user modules define the same step (without [default]),
// it's ambiguous which one to use.
// Expected: Compilation error "Ambiguous step definition for 'build'"
~import std/build
~import app/lib/build_config
// User defines "build" step here
~std/build:step(name: "build") {
echo "Build from main"
}
Must fail at frontend compile:
Parsing or type-checking must reject the program.
Expected compiler error
error[KORU002]: module not found: 'std/compiler'
--> tests/regression/500_INTEGRATION_TESTING/510_NEGATIVE_TESTS/510_013_ambiguous_override_error/input.kz:0:1
|
0 | ~import std/compiler
| ^
hint: check the import path, koru.json paths, and KORU_STDLIB/KORU_PATH environment variables
Error Verification
Actual Compiler Output
error[KORU002]: module not found: 'std/compiler'
--> tests/regression/500_INTEGRATION_TESTING/510_NEGATIVE_TESTS/510_013_ambiguous_override_error/input.kz:0:1
|
0 | ~import std/compiler
| ^
hint: check the import path, koru.json paths, and KORU_STDLIB/KORU_PATH environment variablesImported Files
// This module ALSO defines "build" (no default marker)
// This creates ambiguity - which one should be used?
~import std/build
~std/build:step(name: "build") {
echo "Build from build_config - AMBIGUOUS!"
}
Test Configuration
MUST_FAIL