From b4ed8ee3ad7fffe5594df17b0b343e649fc44d1e Mon Sep 17 00:00:00 2001 From: Gregory Malecha Date: Thu, 12 Dec 2013 14:53:00 +0100 Subject: Patch for supporting [From Xxx Require Yyy Zzz.] When using libraries I find it convenient (and future proof) to use fully qualified paths in many places. It would be nice to have a convenient short-hand for this so that you can: From Xxx Require Yyy Zzz. instead of having to type: Require Xxx.Yyy Xxx.Zzz. Signed-off-by: Pierre Boutillier --- library/libnames.ml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'library/libnames.ml') diff --git a/library/libnames.ml b/library/libnames.ml index 909a4dc3e..cf6d4c8ad 100644 --- a/library/libnames.ml +++ b/library/libnames.ml @@ -203,6 +203,30 @@ let eq_reference r1 r2 = match r1, r2 with | Ident (_, id1), Ident (_, id2) -> Id.equal id1 id2 | _ -> false +let join_reference ns r = + match ns , r with + Qualid (_, q1), Qualid (loc, q2) -> + let (dp1,id1) = repr_qualid q1 in + let (dp2,id2) = repr_qualid q2 in + Qualid (loc, + make_qualid + (append_dirpath (append_dirpath dp1 (dirpath_of_string (Names.Id.to_string id1))) dp2) + id2) + | Qualid (_, q1), Ident (loc, id2) -> + let (dp1,id1) = repr_qualid q1 in + Qualid (loc, + make_qualid + (append_dirpath dp1 (dirpath_of_string (Names.Id.to_string id1))) + id2) + | Ident (_, id1), Qualid (loc, q2) -> + let (dp2,id2) = repr_qualid q2 in + Qualid (loc, make_qualid + (append_dirpath (dirpath_of_string (Names.Id.to_string id1)) dp2) + id2) + | Ident (_, id1), Ident (loc, id2) -> + Qualid (loc, make_qualid + (dirpath_of_string (Names.Id.to_string id1)) id2) + (* Deprecated synonyms *) let make_short_qualid = qualid_of_ident -- cgit v1.2.3