Browse thread
warning on value shadowing
[
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: | 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. Dave