|
| 1 | +(* TEST |
| 2 | + flags = "-I ${ocamlsrcdir}/parsing" |
| 3 | + include ocamlcommon |
| 4 | + * expect |
| 5 | +*) |
| 6 | + |
| 7 | +module L = Longident |
| 8 | +[%%expect {| |
| 9 | +module L = Longident |
| 10 | +|}] |
| 11 | + |
| 12 | +let flatten_ident = L.flatten (L.Lident "foo") |
| 13 | +let flatten_dot = L.flatten (L.Ldot (L.Lident "M", "foo")) |
| 14 | +let flatten_apply = L.flatten (L.Lapply (L.Lident "F", L.Lident "X")) |
| 15 | +[%%expect {| |
| 16 | +val flatten_ident : string list = ["foo"] |
| 17 | +val flatten_dot : string list = ["M"; "foo"] |
| 18 | +Exception: Misc.Fatal_error. |
| 19 | +|}] |
| 20 | + |
| 21 | +let unflatten_empty = L.unflatten [] |
| 22 | +let unflatten_sing = L.unflatten ["foo"] |
| 23 | +let unflatten_dot = L.unflatten ["M"; "N"; "foo"] |
| 24 | +[%%expect {| |
| 25 | +val unflatten_empty : L.t option = None |
| 26 | +val unflatten_sing : L.t option = Some (L.Lident "foo") |
| 27 | +val unflatten_dot : L.t option = |
| 28 | + Some (L.Ldot (L.Ldot (L.Lident "M", "N"), "foo")) |
| 29 | +|}] |
| 30 | + |
| 31 | +let last_ident = L.last (L.lident "foo") |
| 32 | +let last_dot = L.last (L.Ldot (L.lident "M", "foo")) |
| 33 | +let last_apply = L.last (L.Lapply (L.Lident "F", L.Lident "X")) |
| 34 | +let last_dot_apply = L.ldot (L.Lapply (L.Lident "F", L.Lident "X"), "foo") |
| 35 | +[%%expect {| |
| 36 | +Line _, characters 25-33: |
| 37 | + let last_ident = L.last (L.lident "foo") |
| 38 | + ^^^^^^^^ |
| 39 | +Error: Unbound value L.lident |
| 40 | +|}] |
| 41 | + |
| 42 | +let parse_empty = L.parse "" |
| 43 | +let parse_ident = L.parse "foo" |
| 44 | +let parse_dot = L.parse "M.foo" |
| 45 | +let parse_path = L.parse "M.N.foo" |
| 46 | +let parse_complex = L.parse "M.F(M.N).N.foo" |
| 47 | +[%%expect {| |
| 48 | +val parse_empty : L.t = L.Lident "" |
| 49 | +val parse_ident : L.t = L.Lident "foo" |
| 50 | +val parse_dot : L.t = L.Ldot (L.Lident "M", "foo") |
| 51 | +val parse_path : L.t = L.Ldot (L.Ldot (L.Lident "M", "N"), "foo") |
| 52 | +val parse_complex : L.t = |
| 53 | + L.Ldot (L.Ldot (L.Ldot (L.Ldot (L.Lident "M", "F(M"), "N)"), "N"), "foo") |
| 54 | +|}] |
0 commit comments