Version française
Home     About     Download     Resources     Contact us    
Browse thread
Re: Irrelevant variables in patterns
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Christophe Raffalli <cr@d...>
Subject: Irrelevant variables in patterns

> Ce n'est pas un bug lorsqu'on veut faire de la "finalisation":

Cela signifie que l'on doit avoir un warning quand on capture toute les
exceptions et que l'on ne les "reraisent" pas

ex:

        let oc = open_out "foo" in
        try
          ...;
          close_out oc
        with exc ->
          close_out oc;
          sys__remove "foo";
          raise exc

pas de warning ...

        let oc = open_out "foo" in
        try
          ...;
          close_out oc
        with exc ->
          myclose "foo" exc

pas de warning (je ne sais pas vraiment) ? Si l'on ne mets pas de warning dans
ce cas, Chet sera content, car son example n'en produira pas.     

        let oc = open_out "foo" in
        try
          ...;
          close_out oc
        with exc ->
          myclose "foo"

un warning.

        let oc = open_out "foo" in
        try
          ...;
          close_out oc
        with _ ->
          myclose "foo"

une erreur ! (de maniere generale le "_" ne devrait pas etre autoriser pour les
exceptions).

cela devrait attrapper quelques bugs.

Cela serait vraiment bien (pour moi) si la prochaine version de caml-light
pouvait avoir des warnings bien pense de ce type que l'on peut activer par une
option de compilation.

Les deux warnings que je voudrais vraiment pouvoir activier (ce genre de
warning devrait plutot est inactif par defaut ?) sont:

	- variables non utilisees (pattern ou definition de function)
	- capture de toutes les exceptions sans chances de les relever.