私はマニュアルを見て、OCamlに廃止予定のものを宣言するための属性があることを発見しましたが(http://caml.inria.fr/pub/docs/manual-ocaml/extn.html参照)、コンパイラがそれらを認識させる方法を理解できません。OCamlの属性
ここに私が書いたプログラムです:
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
を(私も[@@deprecated ...]
ではなく、同じ結果と[@@ocaml.deprecated ...]
を試してみましたが)。私が実行したとき、私はすべての警告を得ることはありません:
ocamlbuild src/trial.byte
は私_tags
ファイルで設定する必要があるものはありますか?私はここで行方不明の何か他にありますか?
は、(1) 'のように思える[@deprecated「を使用しないでください、この」]'( '1と@')タイプ 'T'の定義作品の後私にとっては(OCaml 4.02.3と4.03.0の両方でテスト済み)。 (2) 'let x = 1'式の後に' @ deprecated'と '@@ deprecated'のどちらも動作しません。 'Warning 3:deprecated:Y これは使わないでください'という最後の行に2回印刷されるという不思議な変則もあります。 –