Fix #661: better error when a public library is defined twice
This commit is contained in:
parent
fb101857d4
commit
c7b9c2cd3e
|
@ -34,7 +34,10 @@ next
|
||||||
|
|
||||||
- Fix a regression introduced by beta19 where the generated merlin
|
- Fix a regression introduced by beta19 where the generated merlin
|
||||||
files didn't include the right `-ppx` flags in some cases (#658
|
files didn't include the right `-ppx` flags in some cases (#658
|
||||||
fixess #657 @diml)
|
fixes #657 @diml)
|
||||||
|
|
||||||
|
- Fix error messaage when a public library is defined twice. Before
|
||||||
|
jbuilder would raise an uncaught exception (Fixes #661, @diml)
|
||||||
|
|
||||||
1.0+beta19.1 (21/03/2018)
|
1.0+beta19.1 (21/03/2018)
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
19
src/scope.ml
19
src/scope.ml
|
@ -77,7 +77,24 @@ module DB = struct
|
||||||
match lib.public with
|
match lib.public with
|
||||||
| None -> None
|
| None -> None
|
||||||
| Some p -> Some (p.name, lib.scope_name))
|
| Some p -> Some (p.name, lib.scope_name))
|
||||||
|> String_map.of_list_exn
|
|> String_map.of_list
|
||||||
|
|> function
|
||||||
|
| Ok x -> x
|
||||||
|
| Error (name, _, _) ->
|
||||||
|
match
|
||||||
|
List.filter_map internal_libs ~f:(fun (_dir, lib) ->
|
||||||
|
match lib.public with
|
||||||
|
| None -> None
|
||||||
|
| Some p -> Option.some_if (name = p.name) lib.buildable.loc)
|
||||||
|
with
|
||||||
|
| [] | [_] -> assert false
|
||||||
|
| loc1 :: loc2 :: _ ->
|
||||||
|
die "Public library %S is defined twice:\n\
|
||||||
|
- %s\n\
|
||||||
|
- %s"
|
||||||
|
name
|
||||||
|
(Loc.to_file_colon_line loc1)
|
||||||
|
(Loc.to_file_colon_line loc2)
|
||||||
in
|
in
|
||||||
Lib.DB.create ()
|
Lib.DB.create ()
|
||||||
~parent:installed_libs
|
~parent:installed_libs
|
||||||
|
|
Loading…
Reference in New Issue