Posix vs. Windows

Sean Kelly sean at invisibleduck.org
Sat May 19 06:49:19 PDT 2012


On May 18, 2012, at 7:10 PM, "Mehrdad" <wfunction at hotmail.com> wrote:
> 
> 2. Okay, so that's clever. :P Now tell me what you do when you have dozens of lines in your source file like
> 
>    @property auto length() { return _range.length; }
> 
> and you want to rename the field 'length'? How do you prevent the second one from getting renamed?

sed using a regex that accounts for more of the line than just "length", like " length(".  It only gets tricky if you are renaming a method call with a non-unique name, which is when you need to use compiler output to flag the offending lines since pure text analysis won't cut it. 

> Or say you have
> 
>    @property auto back() { ... }
>    @property moveBack() { assert(0, "Cannot move an element from the back!"); }
>    auto popBack() { }    // Remove an element from the back
> 
> and you change the name of the property 'back' to 'last':
> 
>    @property auto back() { ... }
>    @property moveBack() { assert(0, "Cannot move an element from the last!"); }
>    auto popBack() { }    // Remove an element from the last
> 
> Notice something funny?

Three operations, one for each method actually being renamed. Ultimately, it's hard to replace a real refactoring tool since it has a compiler built-in though. That said, I don't personally do this kind of thing... pretty much ever. So using a special tool when needed seems like an option. 


More information about the Digitalmars-d mailing list