"Manu" <[email protected]> wrote in message
news:[email protected]...
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. If
not, you have bigger problems.
Language changes are probably easy enough to handle, but what about cases
of 'deprecated' in
the library?
It's conceivable that the deprecated keyword could take an optional
argument to a CTFE function
which would receive the expression as a string, and the function could
transform and return an
amended string which would also be added to the output patch file. This
way, the feature could
conceivably also offer upgrade advice for arbitrary library changes.
Considering the advice in the context of a visual diff/merge window would
be awesome if you ask
me.
Simple updates could be trivially scripted, but more complex ones would need
full re-write rules. All of this is fairly easy to do, and is a simple form
of auto-refactoring code.
Once we have a full-featured auto-formatter we'll be most of the way there.