Author: Raphael Isemann Date: 2020-03-30T14:01:16+02:00 New Revision: 11a5caee2aeae2546213366e7fc54095bb8163b9
URL: https://github.com/llvm/llvm-project/commit/11a5caee2aeae2546213366e7fc54095bb8163b9 DIFF: https://github.com/llvm/llvm-project/commit/11a5caee2aeae2546213366e7fc54095bb8163b9.diff LOG: [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. Added: Modified: lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp Removed: ################################################################################ diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp index e5de4b4651df..b3880ce03b08 100644 --- a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp +++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp @@ -214,16 +214,12 @@ class ClangDiagnosticManagerAdapter : public clang::DiagnosticConsumer { 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); } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits