1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
Check that types referring to class types (with `#` in them)
resolve correctly. All of the 'Class' json objects should contain
'Resolved'
$ ocamlc -c -bin-annot b.ml
$ ocamlc -c -bin-annot c.ml
$ ocamlc -c -bin-annot d.mli
$ ocamlc -c -bin-annot e.mli
$ ocamlc -c -bin-annot f.mli
$ odoc compile b.cmt
$ odoc compile c.cmt -I .
$ odoc compile d.cmti -I .
$ odoc compile e.cmti -I .
$ odoc compile f.cmti -I .
$ odoc_print -r f f.odoc
{
"id": { "`Value": [ { "`Root": [ "None", "F" ] }, "f" ] },
"doc": [],
"type_": {
"Class": [
{
"`Resolved": {
"`Identifier": {
"`ClassType": [ { "`Root": [ "None", "F" ] }, "u" ]
}
}
},
[]
]
},
"value": "Abstract"
}
$ odoc_print e.odoc -r g
{
"id": { "`Value": [ { "`Root": [ "None", "E" ] }, "g" ] },
"doc": [],
"type_": {
"Class": [
{
"`Resolved": {
"`ClassType": [
{ "`Identifier": { "`Root": [ "None", "B" ] } },
"u"
]
}
},
[]
]
},
"value": "Abstract"
}
$ odoc_print e.odoc -r d | jq '.expr.Signature.items[1].Method.type_'
{
"Class": [
{
"`Resolved": {
"`ClassType": [
{
"`Identifier": {
"`Root": [
"None",
"B"
]
}
},
"u"
]
}
},
[]
]
}
$ odoc_print c.odoc -r g
{
"id": { "`Value": [ { "`Root": [ "None", "C" ] }, "g" ] },
"doc": [],
"type_": {
"Arrow": [
"None",
{
"Class": [
{
"`Resolved": {
"`ClassType": [
{ "`Identifier": { "`Root": [ "None", "B" ] } },
"u"
]
}
},
[]
]
},
{
"Constr": [
{ "`Resolved": { "`Identifier": { "`CoreType": "unit" } } },
[]
]
}
]
},
"value": "Abstract"
}
|