Chromium Code Reviews| Index: tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp |
| diff --git a/tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp b/tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp |
| index 3a19515c190ac61352db73b703e20e33987e67ac..f073c73a713531066575133ae8729e850fc7bdfb 100644 |
| --- a/tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp |
| +++ b/tools/clang/rewrite_to_chrome_style/RewriteToChromeStyle.cpp |
| @@ -101,17 +101,6 @@ AST_MATCHER_P(clang::OverloadExpr, |
| return true; |
| } |
| -bool IsDeclContextInWTF(const clang::DeclContext* decl_context) { |
| - auto* namespace_decl = clang::dyn_cast_or_null<clang::NamespaceDecl>( |
| - decl_context->getEnclosingNamespaceContext()); |
| - if (!namespace_decl) |
| - return false; |
| - if (namespace_decl->getParent()->isTranslationUnit() && |
| - namespace_decl->getName() == "WTF") |
| - return true; |
| - return IsDeclContextInWTF(namespace_decl->getParent()); |
| -} |
| - |
| template <typename T> |
| bool MatchAllOverriddenMethods( |
| const clang::CXXMethodDecl& decl, |
| @@ -453,13 +442,23 @@ bool GetNameForDecl(const clang::VarDecl& decl, |
| bool is_const = IsProbablyConst(decl, context); |
| if (is_const) { |
| - // Struct consts in WTF do not become kFoo cuz stuff like type traits |
| - // should stay as lowercase. |
| - const clang::DeclContext* decl_context = decl.getDeclContext(); |
| - bool is_in_wtf = IsDeclContextInWTF(decl_context); |
| - const clang::CXXRecordDecl* parent = |
| - clang::dyn_cast_or_null<clang::CXXRecordDecl>(decl_context); |
| - if (is_in_wtf && parent && parent->isStruct()) |
| + // Given |
| + // namespace WTF { |
| + // struct TypeTrait { |
| + // static const bool value = ...; |
| + // }; |
| + // } |
| + // matches |value|. |
| + auto type_trait_matcher = varDecl( |
| + hasName("value"), |
| + hasStaticStorageDuration(), |
| + hasType(isConstQualified()), |
| + hasType(booleanType()), |
| + hasAncestor(recordDecl(hasAncestor(namespaceDecl( |
| + hasName("WTF"), hasParent(translationUnitDecl())))))); |
|
dcheng
2016/08/24 21:42:17
Since this is expressed as a matcher now, should w
Łukasz Anforowicz
2016/08/24 21:55:09
Good point. Done. (although this has to go to |v
|
| + |
| + // Avoid renaming |value| -> |kValue| in WTF type traits. |
| + if (!match(type_trait_matcher, decl, context).empty()) |
| return false; |
| if (!GetNameForConstant(original_name.str(), name)) |