diff --git a/main.ml b/main.ml index 1ff3c82d520..163a18e9fe1 100644 --- a/main.ml +++ b/main.ml @@ -1686,10 +1686,14 @@ with ) | Some (c,cur_package) -> try + let sl_pack,s_module = match List.rev p with + | s :: sl when s.[0] >= 'A' && s.[0] <= 'Z' -> List.rev sl,s + | _ -> p,c + in let ctx = Typer.create com in let rec lookup p = try - Typeload.load_module ctx (p,c) Ast.null_pos + Typeload.load_module ctx (p,s_module) Ast.null_pos with e -> if cur_package then match List.rev p with @@ -1698,19 +1702,20 @@ with else raise e in - let m = lookup p in + let m = lookup sl_pack in let statics = ref None in let public_types = List.filter (fun t -> let tinfos = t_infos t in - if is_import && snd tinfos.mt_path = c then begin match t with + let is_module_type = snd tinfos.mt_path = c in + if is_import && is_module_type then begin match t with | TClassDecl c -> ignore(c.cl_build()); statics := Some c.cl_ordered_statics | _ -> () end; - not tinfos.mt_private + snd tinfos.mt_path <> s_module && not tinfos.mt_private ) m.m_types in - let types = List.map (fun t -> snd (t_path t),"",Some Typer.FKType,"") public_types in + let types = if c <> s_module then [] else List.map (fun t -> snd (t_path t),"",Some Typer.FKType,"") public_types in let ctx = print_context() in let make_field_doc cf = cf.cf_name,