I was looking at the manual and found that there are attributes in OCaml for declaring things as deprecated (see http://caml.inria.fr/pub/docs/manual-ocaml/extn.html), but I can not figure out how to get them to be recognized by the compiler.
Here's the program that I wrote:
let x = 1 [@@ocaml.deprecated "don't use this"]
type t = X | Y [@@ocaml.deprecated "don't use this"]
let _ =
let y = Y in
match y with
| X ->
print_string (string_of_int x)
| Y -> assert false
(I also tried [@@deprecated ...]
rather than [@@ocaml.deprecated ...]
with the same results). I don't get any warnings when I run:
ocamlbuild src/trial.byte
Is there something that I need to set up in my _tags
file? Is there something else that I'm missing here?
[@deprecated "don't use this"]
(with one@
) after the typet
definition works for me (tested with both OCaml 4.02.3 and 4.03.0); (2) neither@deprecated
nor@@deprecated
works after thelet x = 1
expression. There is a strange quirk also:Warning 3: deprecated: Y don't use this
gets printed twice for the last line. – Spiraea