Usage analysis is global and therefore not attached to a particular program point. Only localized warning can be disabled using @warning.

A first question is why you would want to disable this warning: it seems indeed to be a valid thing to warn about. (If the constructor is exported through the .mli, then no warning will be emitted.)

One valid case where one wants to silence the warning is if values of these types are only built by a C program on the other side of an OCaml/C FFI. Then a valid way to disable the warning is:

  let _ = function
   | Known_location (a, b, c, d, e) -> Kown_location (a, b, c, d ,e)
   | x -> x

It might make sense to have an attribute [@mark_used] (or something like that) to silence the warning at the declaration site, but I don't think it currently exists.

On Tue, Nov 17, 2015 at 12:51 PM, Matej Kosik <5764c029b688c1c0d24a2e97cd764f@gmail.com> wrote:
Dear Ocaml users,

A few days ago there was a question about how to disable a specific warning in a specific location
and the answer was to use

        [@warning "-<num>"]

annotation.

I tried it myself.
By trial and error I was able to figure out how to use it with "function" and "match" constructs.

With this fragment:

        type raw_frame =
        | Known_location of bool * string * int * int * int
        | Unknown_location of bool (*is_raise*)

I would like to temporarily disable warning 37:

        "Warning 37: constructor Known_location is never used to build values.
         (However, this constructor appears in patterns.)"

However, by trial and error, I failed to figure out where is the proper place to put the [@warning "-37"] annotation:

Is there some document that describes where annotations are supported
and what do they mean?

I have skimmed the Reference Manual, but unfortunatelly, I can't find any relevant information.
Where should I look?

Thanks in advance.

--
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs