ABC.cmi instead of aBC.cmi.Semantic Diff
1 commit, rendered from its record.
| Range | Commits | Changelog | Areas | JS output changes | Formats | Failed checks |
|---|---|---|---|---|---|---|
58da277de4eeba0d27f17c8056fd4c192e7b7ad9..pr-8925 | 1 | ๐ Bug fix | typecheckercodegentests | 0 | none | 0 |
ABC.cmi instead of aBC.cmi.58da277de4eeba0d27f17c8056fd4c192e7b7ad9..pr-8925Load-path lookups (Misc.find_in_path_uncap, Config_util.find_opt and the .cmi loader in Bs_cmi_load) accept a file under the module name as written or uncapitalized, and tried the uncapitalized name first. On a case-insensitive file system both spellings match the same file, so the returned path read src/aBC.cmi in "does not match the interface" errors and in other messages naming the file. The lookups now try the name as written first and fall back to the uncapitalized one. On a case-sensitive file system only one spelling exists for a module, so the result is the same file as before.
Before: does not match the interface src/aBC.cmi: After: does not match the interface src/ABC.cmi:
ABC.cmi instead of aBC.cmi.tests/ounit_tests/+ ounit_find_in_path_tests.ml~ ounit_tests_main.ml| A | changes/cmi-lookup-as-written.fix.md | +1 | โ0 |
| M | compiler/core/bs_cmi_load.ml | +1 | โ1 |
| M | compiler/core/config_util.ml | +9 | โ6 |
| M | compiler/ext/misc.ml | +4 | โ4 |
| M | compiler/ext/misc.mli | +2 | โ2 |
| A | tests/ounit_tests/ounit_find_in_path_tests.ml | +90 | โ0 |
| M | tests/ounit_tests/ounit_tests_main.ml | +1 | โ0 |