[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Jean-Yves Moyen <jymoyen@e...> |
| Subject: | Re: Report a missing match |
On Thu, 9 Sep 1999, Don Syme wrote:
> It would be very helpful for me if the Caml compiler could report at least
> one missing match case when it says a match is non-exhaustive. Is this
> feasible to implement fairly painlessly? When working with very large
> datatypes, e.g. 100 constructors, it's very hard to know which case has been
> missed...
I think this can lead to a problem when using gards ('when' cases) in the
pattern matching.
typically,
let f=
function
n when n >= 0 -> true
| n when n < 0 -> false;;
is said to have a non exhaustive matching but the pattern matching is
actually exhaustive.
This is because it is sometimes really tricky to look into when-clauses in
order to check if there are exhaustive or not.
This is a bit more explained in the FAQ:
http://caml.inria.fr/FAQ/FAQ_EXPERT-eng.html#gardes_partielles
In your case, if your not using gards, I guess a little script may be able
to find which cases are not in the pattern matching.
(Maybe this can even be done using camlp4, I don't know)
-------------------------------------------------------------
Quand on est jeune, on croit que le monde est peuple de vieux cons.
En vieillissant, on s'appercoit qu'il est peuple de jeunes imbeciles.
Jym.