NoQ marked an inline comment as done.
NoQ added inline comments.

================
Comment at: 
clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h:491
+                       ArrayRef<SourceRange> Ranges = None,
+                       ArrayRef<FixItHint> Fixits = None);
 
----------------
gribozavr wrote:
> I'm not sure if this is the right model for fixits. Fixits are usually 
> associated with a message that explains what the fixit does. Only in the 
> unusual case where Clang or ClangTidy is very confident that the fixit is 
> correct, it is attached to the warning. Most commonly, fixits are attached to 
> notes.
> 
> Also, for IDE support, it would be really nice if we could provide short 
> descriptions of edits themselves (e.g., "replace 'virtual' with 'override") 
> that can be displayed to the user instead of the diff when possible -- right 
> now we don't and tools using ClangTidy have to use a subpar UI because of 
> that. For example, when we show UI for fixing a warning, displaying the 
> complete diff is too much; a concise description would be a lot better.
> Fixits are usually associated with a message that explains what the fixit 
> does. Only in the unusual case where Clang or ClangTidy is very confident 
> that the fixit is correct, it is attached to the warning.

Wait, you guys already have fixits attached to notes? Then, yeah, i need to 
support this.

> Also, for IDE support, it would be really nice if we could provide short 
> descriptions of edits themselves (e.g., "replace 'virtual' with 'override") 
> that can be displayed to the user instead of the diff when possible -- right 
> now we don't and tools using ClangTidy have to use a subpar UI because of 
> that.

Mmm, interesting. I've seen this IDE of ours autogenerate such messages as 
"replace '`$code_in_removed_range`' with '`$inserted_code`'" (while also 
combining multiple parts of the fixit into a single replacement under the hood) 
and it looked quite bearable most of the time and i silently assumed that 
everybody does the same thing.

I agree that a high-level description of a fixit is nice to have. But given 
that you're attaching fixits to notes, isn't the text of the note text itself 
sufficient? E.g.:
- warning: variable may be used uninitialized here
- note: initialize 'x' here to suppress the warning
  - fixit: add ' = 0' after 'x'


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

https://reviews.llvm.org/D65182



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

Reply via email to