English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
warning on value shadowing
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2007-02-21 (21:51)
From: David Brown <davidb@d...>
Subject: Re: [Caml-list] warning on value shadowing
Sam Steingold wrote:
> Christian Lindig wrote:
>> On Feb 21, 2007, at 9:41 PM, Sam Steingold wrote:
>>> Proposal: When both foo.ml and bar.ml define zot and quux.ml opens
>>> both Foo and Bar, there should be a warning [..]
>> While I see your concern I think open is best avoided.
> Yes, of course.  Alas, I am not at liberty to arbitrarily and
> pervasively change a huge code-reviewed project to satisfy my
> stylistic preferences.  I just see no reason for the compiler not to
> issue such a warning.

One could also argue that this condition is an error.  The closest
equivalent in Haskell is erroneous (only when the symbol is
referenced).  Of course Haskell gives a lot more control over the
importing or names, and is declarative, so it isn't equivalent at all.

The problem with this as a warning, is that outside of multiple
modules, this scenario is fairly common:

  let x = ...
  let x = ... x ...

Since ocaml uses the most recent declration, this is well defined, as
it is with multiple 'open's.