Skip to content

Commit 4b4e8dd

Browse files
panglesdjonludlam
authored andcommitted
Fix module with constraints not being folded over
Signed-off-by: Paul-Elliot <[email protected]>
1 parent b1edfd9 commit 4b4e8dd

File tree

4 files changed

+32
-3
lines changed

4 files changed

+32
-3
lines changed

src/loader/implementation.ml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,13 @@ module Analysis = struct
320320
module_expr env (Odoc_model.Paths.Identifier.Mk.result parent) res
321321
in
322322
res
323+
| Tmod_constraint (me, _, constr, _) ->
324+
let c =
325+
match constr with
326+
Tmodtype_implicit -> []
327+
| Tmodtype_explicit mt -> module_type env parent mt
328+
in
329+
c @ module_expr env parent me
323330
| _ -> []
324331

325332
and unwrap_module_expr_desc = function

test/sources/lookup_def.t/run.t

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Show the locations:
1717
[{"`ModuleType":[{"`Module":[{"`Root":["None","A"]},"N"]},"S"]},{"Some":{"`SourceLocation":[{"`SourcePage":[{"`Page":[{"Some":{"`Page":["None","root"]}},"source"]},"a.ml"]},"module-N.module_type-S"]}}]
1818
[{"`Value":[{"`ModuleType":[{"`Module":[{"`Root":["None","A"]},"N"]},"S"]},"x"]},{"Some":{"`SourceLocation":[{"`SourcePage":[{"`Page":[{"Some":{"`Page":["None","root"]}},"source"]},"a.ml"]},"module-N.module_type-S"]}}]
1919
[{"`Module":[{"`Module":[{"`Root":["None","A"]},"N"]},"T"]},{"Some":{"`SourceLocation":[{"`SourcePage":[{"`Page":[{"Some":{"`Page":["None","root"]}},"source"]},"a.ml"]},"module-N.module-T"]}}]
20-
[{"`Value":[{"`Module":[{"`Module":[{"`Root":["None","A"]},"N"]},"T"]},"x"]},{"Some":{"`SourceLocation":[{"`SourcePage":[{"`Page":[{"Some":{"`Page":["None","root"]}},"source"]},"a.ml"]},"def_3"]}}]
20+
[{"`Value":[{"`Module":[{"`Module":[{"`Root":["None","A"]},"N"]},"T"]},"x"]},{"Some":{"`SourceLocation":[{"`SourcePage":[{"`Page":[{"Some":{"`Page":["None","root"]}},"source"]},"a.ml"]},"module-N.module-T.value-x"]}}]
2121
[{"`Type":[{"`Root":["None","A"]},"t"]},{"Some":{"`SourceLocation":[{"`SourcePage":[{"`Page":[{"Some":{"`Page":["None","root"]}},"source"]},"a.ml"]},"type-t"]}}]
2222
[{"`Value":[{"`Root":["None","A"]},"a"]},{"Some":{"`SourceLocation":[{"`SourcePage":[{"`Page":[{"Some":{"`Page":["None","root"]}},"source"]},"a.ml"]},"value-a"]}}]
2323
[{"`Exception":[{"`Root":["None","A"]},"Exn"]},{"Some":{"`SourceLocation":[{"`SourcePage":[{"`Page":[{"Some":{"`Page":["None","root"]}},"source"]},"a.ml"]},"exception-Exn"]}}]

test/sources/source.t/a.ml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,10 @@ class cls = object end
2121
class cls' = cls
2222
class type ct = object end
2323

24-
2524
let x _ = raise Exn
25+
26+
module X : sig
27+
type t
28+
end = struct
29+
type t = int
30+
end

test/sources/source.t/run.t

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,13 @@ Files containing some values:
2424
class cls' = cls
2525
class type ct = object end
2626

27-
2827
let x _ = raise Exn
28+
29+
module X : sig
30+
type t
31+
end = struct
32+
type t = int
33+
end
2934

3035
Source pages require a parent:
3136

@@ -125,6 +130,10 @@ Source links generated in the documentation:
125130
<div class="spec value anchored" id="val-x">
126131
<a href="#val-x" class="anchor"></a>
127132
<a href="../root/source/a.ml.html#value-x" class="source_link">Source
133+
--
134+
<div class="spec module anchored" id="module-X">
135+
<a href="#module-X" class="anchor"></a>
136+
<a href="../root/source/a.ml.html#module-X" class="source_link">Source
128137

129138
Ids generated in the source code:
130139

@@ -154,6 +163,11 @@ Ids generated in the source code:
154163
id="L23"
155164
id="L24"
156165
id="L25"
166+
id="L26"
167+
id="L27"
168+
id="L28"
169+
id="L29"
170+
id="L30"
157171
id="type-t"
158172
id="type-truc"
159173
id="value-{x}2"
@@ -172,3 +186,6 @@ Ids generated in the source code:
172186
id="class-cls'"
173187
id="class_type-ct"
174188
id="value-x"
189+
id="module-X"
190+
id="module-X.type-t"
191+
id="module-X.type-t"

0 commit comments

Comments
 (0)