You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 4001 Reporter: ertai Status: closed (set by @garrigue on 2006-06-23T01:13:22Z) Resolution: fixed Priority: normal Severity: minor Version: 3.10+dev Category: ~DO NOT USE (was: OCaml general) Monitored by: ertai
Bug description
In a particular case, the OCaml compiler, reports that a module is not included in a signature whereas it knows nothing about this signature since it is inside another directory.
Example:
$ cat bug.sh
mkdir a
cd a
echo 'module type S = sig val i : int end' > a.ml
ocamlc -c a.ml
cd ..
echo 'module Make (M : A.S) : sig end' > b.mli
ocamlc -I a -c b.mli # Note the -I a
echo 'module C = B.Make (struct let i = 42 end)' > test.ml
ocamlc -c test.ml # Note that the -I a is missing
$ sh -x bug.sh
mkdir a
cd a
echo 'module type S = sig val i : int end'
ocamlc -c a.ml
cd ..
echo 'module Make (M : A.S) : sig end'
ocamlc -I a -c b.mli
echo 'module C = B.Make (struct let i = 42 end)'
ocamlc -c test.ml
File "test.ml", line 1, characters 19-40:
Signature mismatch:
Modules do not match: sig val i : int end is not included in A.S
The compiler should says that it knows nothing about the A.S signature.
$ ocamlc -I a -c test.ml
Just works, but it's sometimes hard to discover...
The text was updated successfully, but these errors were encountered:
Original bug ID: 4001
Reporter: ertai
Status: closed (set by @garrigue on 2006-06-23T01:13:22Z)
Resolution: fixed
Priority: normal
Severity: minor
Version: 3.10+dev
Category: ~DO NOT USE (was: OCaml general)
Monitored by: ertai
Bug description
In a particular case, the OCaml compiler, reports that a module is not included in a signature whereas it knows nothing about this signature since it is inside another directory.
Example:
$ cat bug.sh
mkdir a
cd a
echo 'module type S = sig val i : int end' > a.ml
ocamlc -c a.ml
cd ..
echo 'module Make (M : A.S) : sig end' > b.mli
ocamlc -I a -c b.mli # Note the -I a
echo 'module C = B.Make (struct let i = 42 end)' > test.ml
ocamlc -c test.ml # Note that the -I a is missing
$ sh -x bug.sh
File "test.ml", line 1, characters 19-40:
Signature mismatch:
Modules do not match: sig val i : int end is not included in A.S
The compiler should says that it knows nothing about the A.S signature.
$ ocamlc -I a -c test.ml
Just works, but it's sometimes hard to discover...
The text was updated successfully, but these errors were encountered: