On Tue, 28 Dec 2010 18:37:37 +0100
Andrej Mitrovic <andrej.mitrov...@gmail.com> wrote:

> On 12/28/10, Adam Ruppe <destructiona...@gmail.com> wrote:
> > That's not the only bad part. It also means refactoring your modules
> > requires changes to the user code too. See my other post here:
> 
> Actually, D is equipped to solve even that problem. If you really want
> to use fully qualified names and reserve the right to rename a module,
> you can do this:
> 
> foo.d:
> import std.stdio : writeln;
> void bar()
> {
>     writeln("bar");
> }
> 
> main.d:
> static import foo = foo;
> void main()
> {
>     foo.bar();
> }
> 
> If you decide to rename the foo module to "foobar", all you need to
> change is one line in main:
> static import foo = foobar;
> 
> This is much saner than bearophile's "force full qualified names by
> default", since it still allows you to refactor your modules with the
> minimum amount of changes in the importing code.

Waow! had not guessed that. Thanks for the tip :-) But it does not change 
anything relating to the 'feature' "import every symbol by default", as far as 
I can tell. Or what? On the contrary, it seems to me this helps & having good 
documentation practice and/or clearer code without potential refactoring 
issues. (Which anyway find&replace "foo." --> "foobar." solves is 99% cases.)

Denis
-- -- -- -- -- -- --
vit esse estrany ☣

spir.wikidot.com

Reply via email to