diff --git a/doc/changes/11128.md b/doc/changes/11128.md new file mode 100644 index 00000000000..13c7d4668a1 --- /dev/null +++ b/doc/changes/11128.md @@ -0,0 +1,2 @@ +- Tolerate files without extension when generating merlin rules. + (#11128, @anmonteiro) diff --git a/src/dune_rules/merlin/merlin.ml b/src/dune_rules/merlin/merlin.ml index a94b191fc57..d685d60ccbe 100644 --- a/src/dune_rules/merlin/merlin.ml +++ b/src/dune_rules/merlin/merlin.ml @@ -3,7 +3,12 @@ open Memo.O let remove_extension file = let dir = Path.Build.parent_exn file in - let basename, _ext = String.lsplit2_exn (Path.Build.basename file) ~on:'.' in + let basename = + let basename = Path.Build.basename file in + match String.lsplit2 basename ~on:'.' with + | Some (basename, _ext) -> basename + | None -> basename + in Path.Build.relative dir basename ;;