Merge pull request #465 from rgrinberg/odoc-scope-bug

Fix scoping related odoc rules
This commit is contained in:
Rudi Grinberg 2018-01-31 15:22:19 +08:00 committed by GitHub
commit e788dd8a7f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 2 deletions

View File

@ -268,13 +268,23 @@ let setup_toplevel_index_rule sctx =
let doc_dir = SC.Doc.root sctx in
SC.add_rule sctx @@ Build.write_file (toplevel_index ~doc_dir) html
let gen_rules sctx ~dir rest =
let gen_rules sctx ~dir:_ rest =
match rest with
| [] ->
setup_css_rule sctx;
setup_toplevel_index_rule sctx
| lib :: _ ->
let scope = Lib_db.find_scope' (SC.libs sctx) ~dir in
let libs = SC.libs sctx in
let (lib, scope) =
match String.rsplit2 lib ~on:'@' with
| None -> (lib, Lib_db.external_scope libs)
| Some (lib, name) -> (lib, Lib_db.find_scope_by_name_exn libs ~name)
in
let scope =
{ Lib_db.
data = scope
; required_by = ["@doc target"]
} in
match Lib_db.Scope.find scope lib with
| None | Some (External _) -> ()
| Some (Internal (dir, _)) -> SC.load_dir sctx ~dir