diff --git a/src/context/display/displayJson.ml b/src/context/display/displayJson.ml index 06a336c8aac..1ed9e25cd25 100644 --- a/src/context/display/displayJson.ml +++ b/src/context/display/displayJson.ml @@ -182,13 +182,14 @@ let handler = "server/module", (fun hctx -> let sign = Digest.from_hex (hctx.jsonrpc#get_string_param "signature") in let path = Path.parse_path (hctx.jsonrpc#get_string_param "path") in - let cc = hctx.display#get_cs#get_context sign in + let cs = hctx.display#get_cs in + let cc = cs#get_context sign in let m = try cc#find_module path with Not_found -> hctx.send_error [jstring "No such module"] in - hctx.send_result (generate_module cc m) + hctx.send_result (generate_module cs cc m) ); "server/type", (fun hctx -> let sign = Digest.from_hex (hctx.jsonrpc#get_string_param "signature") in diff --git a/src/core/json/genjson.ml b/src/core/json/genjson.ml index b0739dbac6b..c3f79615fdf 100644 --- a/src/core/json/genjson.ml +++ b/src/core/json/genjson.ml @@ -707,7 +707,7 @@ let generate_module_type ctx mt = (* module *) -let generate_module cc m = +let generate_module cs cc m = jobject [ "id",jint m.m_id; "path",generate_module_path m.m_path; @@ -718,11 +718,10 @@ let generate_module cc m = | MSGood -> "Good" | MSBad reason -> Printer.s_module_skip_reason reason | MSUnknown -> "Unknown"); - "dependencies",jarray (PMap.fold (fun (_,mpath) acc -> + "dependencies",jarray (PMap.fold (fun (sign,mpath) acc -> (jobject [ "path",jstring (s_type_path mpath); - (* TODO handle modules from another context here *) - "sign",jstring (Digest.to_hex (cc#find_module mpath).m_extra.m_sign); + "sign",jstring (Digest.to_hex ((cs#get_context sign)#find_module mpath).m_extra.m_sign); ]) :: acc ) m.m_extra.m_deps []); "dependents",jarray (List.map (fun m -> (jobject [