forked from OSchip/llvm-project
[lldb][NFC] Refactor Fix-It filter for warnings
LLDB only automatically applies Fix-Its from errors, but not from warnings. Currently we only store Fix-Its from errors and then later apply all Fix-Its we stored. This moves the filter to the application phase, so that we now store *all* Fix-Its but only apply Fix-Its from errors later on. This is NFC preparation for an upcoming patch.
This commit is contained in:
parent
3b20970de8
commit
11a5caee2a
|
@ -214,16 +214,12 @@ public:
|
|||
auto new_diagnostic = std::make_unique<ClangDiagnostic>(
|
||||
stripped_output, severity, Info.getID());
|
||||
|
||||
// Don't store away warning fixits, since the compiler doesn't have
|
||||
// enough context in an expression for the warning to be useful.
|
||||
// FIXME: Should we try to filter out FixIts that apply to our generated
|
||||
// code, and not the user's expression?
|
||||
if (severity == eDiagnosticSeverityError) {
|
||||
for (const clang::FixItHint &fixit : Info.getFixItHints()) {
|
||||
if (fixit.isNull())
|
||||
continue;
|
||||
new_diagnostic->AddFixitHint(fixit);
|
||||
}
|
||||
for (const clang::FixItHint &fixit : Info.getFixItHints()) {
|
||||
if (fixit.isNull())
|
||||
continue;
|
||||
new_diagnostic->AddFixitHint(fixit);
|
||||
}
|
||||
|
||||
m_manager->AddDiagnostic(std::move(new_diagnostic));
|
||||
|
@ -1127,6 +1123,10 @@ bool ClangExpressionParser::RewriteExpression(
|
|||
continue;
|
||||
if (!diagnostic->HasFixIts())
|
||||
continue;
|
||||
// Don't apply warning Fix-Its, since the compiler doesn't have enough
|
||||
// context in an expression for the warning to be useful.
|
||||
if (diagnostic->GetSeverity() != eDiagnosticSeverityError)
|
||||
continue;
|
||||
for (const FixItHint &fixit : diagnostic->FixIts())
|
||||
ApplyFixIt(fixit, commit);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue