On 14 March 2014 22:07, John Colvin <john.loughran.colvin@gmail.com> wrote:
On Friday, 14 March 2014 at 11:44:21 UTC, Daniel Murphy wrote:
"Manu" <turkeyman@gmail.com> wrote in message news:mailman.105.1394774104.23258.digitalmars-d@puremagic.com...

So it comes up fairly regularly that people suggest that the compiler should have a mode where it
may update user code automatically to assist migration to new compiler versions.

I'm personally against the idea, and Walter certainly doesn't like it, but it occurred to me that a
slight variation on this idea might be awesome.

Imagine instead, an '-update' option which instead of modifying your code, would output a .patch
file containing suggested amendments wherever it encountered deprecated code...
The user can then take this patch file, inspect it visually using their favourite merge tool, and pick
and choose the bits that they agree or disagree with.

I would say this approach takes a dubious feature and turns it into a spectacular feature!

If you're using version control, these are practically the same thing.

Yeah, I don't understand why it matters whether it's a change or a patch. Either way, all changes become patches in VCS. Who would let an automated tool make source changes without using VC, or at least having made a manual backup?

Because Walter is acutely allergic to the idea of a tool that modifies your source code. I might also have uncommitted changes, and not particularly feel like stashing them for the moment (less easy in other VCS's).
I might also not want to apply all the changes, only some of them. Surely it's easier to merge the ones I want after visual approval, than reverting the ones I don't want after having gone to the effort of stashing my local changes to make a clean slate to work with...

Also, making a direct change allows the user to use whatever diff software / version control software they like.

I'm not sure how a patch file restricts them to a particular merge program or VCS...