[libTooling] Generalize string explanation as templated metadata
authorEric Li <li.zhe.hua@gmail.com>
Mon, 21 Mar 2022 20:38:40 +0000 (20:38 +0000)
committerYitzhak Mandelbaum <yitzhakm@google.com>
Mon, 21 Mar 2022 20:39:35 +0000 (20:39 +0000)
commit9edeceaece606125fa392e1648e549d256df423a
tree54cbcb66ebd66110f4c2433f7170afbf15bd7de3
parente6c84f82b87576a57d1fa1c7e8c289d3d4fa7ab1
[libTooling] Generalize string explanation as templated metadata

Change RewriteRule from holding an `Explanation` to being able to generate
arbitrary metadata. Where TransformerClangTidyCheck was interested in a string
description for the diagnostic, other tools may be interested in richer metadata
at a higher level of abstraction than at the edit level (which is currently
available as ASTEdit::Metadata).

Reviewed By: ymandel

Differential Revision: https://reviews.llvm.org/D120360
clang-tools-extra/clang-tidy/abseil/CleanupCtadCheck.cpp
clang-tools-extra/clang-tidy/abseil/StringFindStrContainsCheck.cpp
clang-tools-extra/clang-tidy/bugprone/StringviewNullptrCheck.cpp
clang-tools-extra/clang-tidy/utils/TransformerClangTidyCheck.cpp
clang-tools-extra/clang-tidy/utils/TransformerClangTidyCheck.h
clang-tools-extra/unittests/clang-tidy/TransformerClangTidyCheckTest.cpp
clang/include/clang/Tooling/Transformer/RewriteRule.h
clang/include/clang/Tooling/Transformer/Transformer.h
clang/lib/Tooling/Transformer/RewriteRule.cpp
clang/lib/Tooling/Transformer/Transformer.cpp
clang/unittests/Tooling/TransformerTest.cpp