caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Gabriel Scherer <gabriel.scherer@gmail.com>
To: Matej Kosik <5764c029b688c1c0d24a2e97cd764f@gmail.com>
Cc: caml users <caml-list@inria.fr>
Subject: Re: [Caml-list] a question about annotations
Date: Tue, 17 Nov 2015 13:11:19 +0100	[thread overview]
Message-ID: <CAPFanBE6HqAE78+bFc_FKMYjOGedXmR2AaA0Oos93mRyKNEzpg@mail.gmail.com> (raw)
In-Reply-To: <564B14B0.3020306@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2193 bytes --]

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
>

[-- Attachment #2: Type: text/html, Size: 3149 bytes --]

  reply	other threads:[~2015-11-17 12:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-17 11:51 Matej Kosik
2015-11-17 12:11 ` Gabriel Scherer [this message]
2015-11-17 12:20 ` octachron
2015-11-17 12:21 ` Alain Frisch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPFanBE6HqAE78+bFc_FKMYjOGedXmR2AaA0Oos93mRyKNEzpg@mail.gmail.com \
    --to=gabriel.scherer@gmail.com \
    --cc=5764c029b688c1c0d24a2e97cd764f@gmail.com \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).