An extensionless import path that names a directory next to a same-named
.sx file ('modules/std' with both modules/std.sx and modules/std/ present)
no longer silently resolves to the directory — it errors and asks for the
explicit .sx spelling. Exemption: a file importing its own companion
directory (X.sx importing X/, the multi-file test layout) stays legal —
the sibling file is the importer itself, so the directory is the only
sensible target.
12 lines
385 B
Plaintext
12 lines
385 B
Plaintext
// An extensionless #import that matches BOTH a `.sx` file and a sibling
|
|
// directory of the same name is ambiguous — the compiler refuses to pick
|
|
// silently and asks for the explicit `.sx` spelling. `modules/std` is the
|
|
// canonical collision: `modules/std.sx` (the prelude) sits next to
|
|
// `modules/std/` (mem/fs/process/...).
|
|
|
|
#import "modules/std";
|
|
|
|
main :: () -> s32 {
|
|
0
|
|
}
|