ziqingluo-90 added a comment.

In D141338#4042050 <https://reviews.llvm.org/D141338#4042050>, @NoQ wrote:

> Looks awesome!
>
> I'm worried that the test is going to rapidly become stale as you develop 
> fixits for `DeclStmt` further. It might make sense to write some 
> //unittests// for this class directly, to put into 
> `clang/unittest/Analysis/...`. Then you can create some fixits defined by 
> hand, without invoking UnsafeBufferUsage analysis, and feed them to this 
> class directly and verify the results.
>
> Also let's explain motivation a bit more. Normally compiler warnings don't 
> need such machine because the fixits they come with are very simple and 
> hand-crafted. However, unsafe buffer usage analysis is a large emergent 
> behavior machine that may fix different parts of user code, and different 
> parts of the machine that can produce parts of such fixits aren't necessarily 
> aware of each other. In some cases no progress can be made without making 
> sure these parts of the machine talk to each other. However, every time the 
> machine does emit individual fixits, they're actually correct; conflicts 
> between such fixits are entirely a representation problem (we're unable to 
> present overlapping fixits to the user because this requires us to resolve 
> the merge conflict), not an underlying correctness problem. So @ziqingluo-90 
> is implementing a bailout for the situation when the fixits were perfectly 
> correct in isolation but can't be properly displayed to the user due to merge 
> conflicts between them. This makes it possible for such "merge conflicts" 
> detection to be purely SourceRange-based, so it doesn't need to take the 
> details of the underlying AST into account.

Thanks for adding the motivation here!

I updated the revision by getting rid of things we don't need for now.   
At this point, we just need to tell if there is any conflict in the fix-its 
generated for one variable (including variable declaration fix-its and variable 
usage fix-its).  If there is any,  we do NOT emit any fix-it for that variable.

At some point later, we may want to know the exact conflicting subsets.  That 
will be another patch.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141338/new/

https://reviews.llvm.org/D141338

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to