In the following example:
$ cat a.ml
let f = ()
module M(X: sig val f: unit end) = struct let _ = X.f end
$ cat b.ml
include A.M(struct let f = A.f end)
$ cat .ocplint
plugin_parsing = {
get_features = { enabled = false }
}
plugin_file_system = {
interface_missing = { enabled = false }
}
With the following commands:
ocamlc -c -w +a-4 -bin-annot ./a.ml
ocamlc -c -w +a-4 -bin-annot ./b.ml
ocp-lint --pwarning
It will give the following output
Scanning files in project "."...
Found '11' file(s)
Running analyses... 9 / 9
Mergin database...
File "b.ml", line 1, characters 19-30:
Warning 1: plugin_typedtree/fully_qualified_identifiers/not-qualified-enough SEVERITY 2
external identifier "f" is not fully qualified
(should be "A.f")
== New Warnings ==
* 1 file(s) were linted
* 1 warning(s) were emitted:
* 1 warning(s) raised by "plugin_typedtree"/"fully_qualified_identifiers.1"/warning #1
* 0 file(s) couldn't be linted
Is this warning expected?