The decision we came to some time ago when discussing this on the mailing
list was that the rule actually held, and the only valid fixit hint to
issue on a warning is one which *does not impact* the AST produced or the
recovery path.

For example, its valid to issue a warning with a fixit hint to correct
'struct' to 'class' (or vice versa) on a forward declaration which does not
match the actual definition.

I think we have only a very few (if any) warnings left with fixit hints
that, were they applied, would change the AST produced. And I think those
should just be fixed to attach them to notes.


On Mon, Jul 9, 2012 at 10:03 PM, Chris Lattner <[email protected]> wrote:

> Author: lattner
> Date: Tue Jul 10 00:03:05 2012
> New Revision: 159980
>
> URL: http://llvm.org/viewvc/llvm-project?rev=159980&view=rev
> Log:
> Jordan points out that this was incorrect: clang should recover from
> *errors* with fixits on them by following the recovery advised by the
> fixit, but if it is a fixit on a warning, then obviously the AST
> should be for the code as-written.
>
> Modified:
>     cfe/trunk/docs/InternalsManual.html
>
> Modified: cfe/trunk/docs/InternalsManual.html
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/InternalsManual.html?rev=159980&r1=159979&r2=159980&view=diff
>
> ==============================================================================
> --- cfe/trunk/docs/InternalsManual.html (original)
> +++ cfe/trunk/docs/InternalsManual.html Tue Jul 10 00:03:05 2012
> @@ -453,8 +453,7 @@
>  <li>Since they are automatically applied if <code>-Xclang -fixit</code>
>  is passed to the driver, they should only be used when it's very likely
> they
>  match the user's intent.</li>
> -<li>Clang must recover from the error or warning as if the fix-it had been
> -applied.</li>
> +<li>Clang must recover from errors as if the fix-it had been applied.</li>
>  </ul>
>
>  <p>If a fix-it can't obey these rules, put the fix-it on a note. Fix-its
> on
>
>
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to