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