Skip to content

Commit 70c9582

Browse files
committed
test: similar for type-enclosing
1 parent fa545ab commit 70c9582

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
$ cat >main.ml <<EOF
2+
> module type T = sig
3+
> type 'a t
4+
> end
5+
>
6+
> module N = struct
7+
> module M (T : T) = struct
8+
> type t = int T.t
9+
> end
10+
> end
11+
>
12+
> module F = struct
13+
> module T = struct type 'a t end
14+
> end
15+
>
16+
> type u = N.M(F.T).t
17+
> EOF
18+
19+
FIXME, this should return the type of `t` not the M functor (line 7)
20+
$ $MERLIN single type-enclosing -position 15:18 -verbosity 1 \
21+
> -filename main.ml <main.ml
22+
{
23+
"class": "return",
24+
"value": [
25+
{
26+
"start": {
27+
"line": 15,
28+
"col": 9
29+
},
30+
"end": {
31+
"line": 15,
32+
"col": 19
33+
},
34+
"type": "functor (T : T) -> sig type t = int T.t end",
35+
"tail": "no"
36+
},
37+
{
38+
"start": {
39+
"line": 15,
40+
"col": 9
41+
},
42+
"end": {
43+
"line": 15,
44+
"col": 19
45+
},
46+
"type": "int F.T.t",
47+
"tail": "no"
48+
},
49+
{
50+
"start": {
51+
"line": 15,
52+
"col": 0
53+
},
54+
"end": {
55+
"line": 15,
56+
"col": 19
57+
},
58+
"type": "type u = int F.T.t",
59+
"tail": "no"
60+
}
61+
],
62+
"notifications": []
63+
}
64+
Type of T (line 12)
65+
$ $MERLIN single type-enclosing -position 15:15 \
66+
> -filename main.ml <main.ml | jq '.value[0].type'
67+
"sig type 'a t end"
68+
69+
Type of F (line 11)
70+
$ $MERLIN single type-enclosing -position 15:13 \
71+
> -filename main.ml <main.ml | jq '.value[0].type'
72+
"sig module T : sig type 'a t end end"
73+
74+
Type of M (line 6)
75+
$ $MERLIN single type-enclosing -position 15:11 \
76+
> -filename main.ml <main.ml | jq '.value[0].type'
77+
"functor (T : T) -> sig type t = int T.t end"
78+
79+
Type of N (line 5)
80+
$ $MERLIN single type-enclosing -position 15:9 \
81+
> -filename main.ml <main.ml | jq '.value[0].type'
82+
"sig module M : functor (T : T) -> sig type t = int T.t end end"

0 commit comments

Comments
 (0)