[PATCH] D55409: [clang-tidy] check for using declarations not in an anonymous namespace when there exists one
Ywicheng updated this revision to Diff 195656. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55409/new/ https://reviews.llvm.org/D55409 Files: clang-tidy/abseil/AbseilTidyModule.cpp clang-tidy/abseil/AnonymousEnclosedAliasesCheck.cpp clang-tidy/abseil/AnonymousEnclosedAliasesCheck.h clang-tidy/abseil/CMakeLists.txt docs/ReleaseNotes.rst docs/clang-tidy/checks/abseil-anonymous-enclosed-aliases.rst docs/clang-tidy/checks/list.rst test/clang-tidy/abseil-anonymous-enclosed-aliases.cpp Index: test/clang-tidy/abseil-anonymous-enclosed-aliases.cpp === --- /dev/null +++ test/clang-tidy/abseil-anonymous-enclosed-aliases.cpp @@ -0,0 +1,56 @@ +// RUN: %check_clang_tidy %s abseil-anonymous-enclosed-aliases %t +namespace bar { + +class A {}; +class B {}; + +} // namespace bar + +namespace foo1 { + +// CHECK-MESSAGES: :[[@LINE+4]]:12: warning: using declaration 'A' should +// be in the anonymous namespace. Use discretion when moving using declarations +// as it might necessitate moving lines containing relevant aliases. +// [abseil-anonymous-enclosed-aliases] +using bar::A; +void f(A a); + +namespace {} // anonymous namespace + +} // namespace foo1 + +namespace foo2 { + +namespace { + +// This is okay +using ::bar::B; + +} // anonymous namespace + +void g(B b); + +} // namespace foo2 + +// Check should not be triggered below when the using declaration is at +// function or class (instead of namespace) scope. +namespace outer { + +int fun_scope() { + using ::bar::A; + return 0; +} // function scope + +class Base { +public: + void f(); +}; // class scope + +class Derived : public Base { +public: + using Base::f; +}; // class scope + +namespace {} // anonymous namespace + +} // namespace outer \ No newline at end of file Index: docs/clang-tidy/checks/list.rst === --- docs/clang-tidy/checks/list.rst +++ docs/clang-tidy/checks/list.rst @@ -4,6 +4,7 @@ = .. toctree:: + abseil-anonymous-enclosed-aliases abseil-duration-addition abseil-duration-comparison abseil-duration-conversion-cast Index: docs/clang-tidy/checks/abseil-anonymous-enclosed-aliases.rst === --- /dev/null +++ docs/clang-tidy/checks/abseil-anonymous-enclosed-aliases.rst @@ -0,0 +1,20 @@ +.. title:: clang-tidy - abseil-anonymous-enclosed-aliases + +abseil-anonymous-enclosed-aliases += + +Finds using declarations outside of anonymous namespaces, and +suggests those declarations be moved to that namespace. + +Example: +.. code-block:: c++ + + namespace foo { + + using something; // should be inside the anonymous namespace below + + namespace { + + } // anonymous namespace + + } // foo Index: docs/ReleaseNotes.rst === --- docs/ReleaseNotes.rst +++ docs/ReleaseNotes.rst @@ -67,6 +67,12 @@ Improvements to clang-tidy -- +- New :doc:`abseil-anonymous-enclosed-aliases + ` check. + + Finds instances of using declarations not in an anonymous namespace + when there exists one. + - New :doc:`abseil-duration-addition ` check. Index: clang-tidy/abseil/CMakeLists.txt === --- clang-tidy/abseil/CMakeLists.txt +++ clang-tidy/abseil/CMakeLists.txt @@ -2,6 +2,7 @@ add_clang_library(clangTidyAbseilModule AbseilTidyModule.cpp + AnonymousEnclosedAliasesCheck.cpp DurationAdditionCheck.cpp DurationComparisonCheck.cpp DurationConversionCastCheck.cpp Index: clang-tidy/abseil/AnonymousEnclosedAliasesCheck.h === --- /dev/null +++ clang-tidy/abseil/AnonymousEnclosedAliasesCheck.h @@ -0,0 +1,40 @@ +//===--- AnonymousEnclosedAliasesCheck.h - clang-tidy ---*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===--===// + +#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ABSEIL_ANONYMOUSENCLOSEDALIASESCHECK_H +#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ABSEIL_ANONYMOUSENCLOSEDALIASESCHECK_H + +#include "../ClangTidy.h" +#include + +namespace clang { +namespace tidy { +namespace abseil { + +/// Detecting incorrect practice of putting using declarations outside an +/// anonymous namespace when there exists one. +/// For the user-facing documentation see: +/// http://clang.llvm.org/extra/clang-tidy/checks/ +/// abseil-anonymous-enclosed-aliases.html +class AnonymousEnclosedAliasesCheck : public ClangTidyCheck { +public: + AnonymousEnclosedAliasesCheck(StringRef Name, ClangTidyContext *Context) + : ClangTidyCheck(Name, Context) {} + void
[PATCH] D55409: [clang-tidy] check for using declarations not in an anonymous namespace when there exists one
aaron.ballman added inline comments. Comment at: clang-tidy/abseil/AnonymousEnclosedAliasesCheck.cpp:41 +// to the vector containing all candidate using declarations. +if (AnonymousNamespaceDecl) { + diag(MatchedUsingDecl->getLocation(), Naysh wrote: > aaron.ballman wrote: > > I don't think this logic works in practice because there's no way to > > determine that the anonymous namespace is even a candidate for putting the > > using declaration into it. Consider a common scenario where there's an > > anonymous namespace declared in a header file (like an STL header outside > > of the user's control), and a using declaration inside of an implementation > > file. Just because the STL declared an anonymous namespace doesn't mean > > that the user could have put their using declaration in it. > If we altered the check to only apply to anonymous namespaces and using > declarations at namespace scope (that is, we only suggest aliases be moved to > anonymous namespaces when the unnamed namespace and alias are themselves > inside some other namespace), would this issue be resolved? If they're inside the same namespace, then I think that could work, but if the namespaces are different I don't know that you can be sure the alias can be moved into the anonymous namespace. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55409/new/ https://reviews.llvm.org/D55409 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D55409: [clang-tidy] check for using declarations not in an anonymous namespace when there exists one
Naysh marked an inline comment as done. Naysh added inline comments. Comment at: clang-tidy/abseil/AnonymousEnclosedAliasesCheck.cpp:41 +// to the vector containing all candidate using declarations. +if (AnonymousNamespaceDecl) { + diag(MatchedUsingDecl->getLocation(), aaron.ballman wrote: > I don't think this logic works in practice because there's no way to > determine that the anonymous namespace is even a candidate for putting the > using declaration into it. Consider a common scenario where there's an > anonymous namespace declared in a header file (like an STL header outside of > the user's control), and a using declaration inside of an implementation > file. Just because the STL declared an anonymous namespace doesn't mean that > the user could have put their using declaration in it. If we altered the check to only apply to anonymous namespaces and using declarations at namespace scope (that is, we only suggest aliases be moved to anonymous namespaces when the unnamed namespace and alias are themselves inside some other namespace), would this issue be resolved? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55409/new/ https://reviews.llvm.org/D55409 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D55409: [clang-tidy] check for using declarations not in an anonymous namespace when there exists one
aaron.ballman requested changes to this revision. aaron.ballman added inline comments. This revision now requires changes to proceed. Comment at: clang-tidy/abseil/AnonymousEnclosedAliasesCheck.cpp:32 +void AnonymousEnclosedAliasesCheck::check(const MatchFinder::MatchResult ) { + + const auto *MatchedUsingDecl = Spurious newline. Comment at: clang-tidy/abseil/AnonymousEnclosedAliasesCheck.cpp:41 +// to the vector containing all candidate using declarations. +if (AnonymousNamespaceDecl) { + diag(MatchedUsingDecl->getLocation(), I don't think this logic works in practice because there's no way to determine that the anonymous namespace is even a candidate for putting the using declaration into it. Consider a common scenario where there's an anonymous namespace declared in a header file (like an STL header outside of the user's control), and a using declaration inside of an implementation file. Just because the STL declared an anonymous namespace doesn't mean that the user could have put their using declaration in it. Comment at: clang-tidy/abseil/AnonymousEnclosedAliasesCheck.cpp:43-44 + diag(MatchedUsingDecl->getLocation(), + "UsingDecl %0 should be in the anonymous namespace. See: " +"https://abseil.io/tips/119;) + << MatchedUsingDecl; Diagnostics should not be complete sentences or contain hyperlinks. (Same below.) Comment at: clang-tidy/abseil/AnonymousEnclosedAliasesCheck.h:20 + +/// Detecting incorrect practice of putting using declarations outside an +/// anonymous namespace when there exists one. Detecting incorrect -> Detecting the incorrect Comment at: clang-tidy/abseil/AnonymousEnclosedAliasesCheck.h:21 +/// Detecting incorrect practice of putting using declarations outside an +/// anonymous namespace when there exists one. +/// For the user-facing documentation see: when there exists one -> when one exists CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55409/new/ https://reviews.llvm.org/D55409 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D55409: [clang-tidy] check for using declarations not in an anonymous namespace when there exists one
JonasToth added a comment. Please upload with full context. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55409/new/ https://reviews.llvm.org/D55409 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D55409: [clang-tidy] check for using declarations not in an anonymous namespace when there exists one
Ywicheng updated this revision to Diff 177121. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55409/new/ https://reviews.llvm.org/D55409 Files: clang-tidy/abseil/AbseilTidyModule.cpp clang-tidy/abseil/AnonymousEnclosedAliasesCheck.cpp clang-tidy/abseil/AnonymousEnclosedAliasesCheck.h clang-tidy/abseil/CMakeLists.txt docs/ReleaseNotes.rst docs/clang-tidy/checks/abseil-anonymous-enclosed-aliases.rst docs/clang-tidy/checks/list.rst test/clang-tidy/abseil-anonymous-enclosed-aliases.cpp Index: test/clang-tidy/abseil-anonymous-enclosed-aliases.cpp === --- /dev/null +++ test/clang-tidy/abseil-anonymous-enclosed-aliases.cpp @@ -0,0 +1,27 @@ +// RUN: %check_clang_tidy %s abseil-anonymous-enclosed-aliases %t +namespace bar { + +class something { + +}; +} + +namespace foo { + +using bar::something; + +namespace { + +} // anonymous namespace +} // namespace foo +// CHECK-MESSAGES: :[[@LINE-6]]:12: warning: UsingDecl 'something' should be in the anonymous namespace. See: https://abseil.io/tips/119 [abseil-anonymous-enclosed-aliases] + + +namespace foo { + +namespace { + +using ::bar::something; + +} // anonymous namespace +} // namespace foo Index: docs/clang-tidy/checks/list.rst === --- docs/clang-tidy/checks/list.rst +++ docs/clang-tidy/checks/list.rst @@ -4,14 +4,15 @@ = .. toctree:: + abseil-anonymous-enclosed-aliases abseil-duration-division abseil-duration-factory-float abseil-faster-strsplit-delimiter abseil-no-internal-dependencies abseil-no-namespace abseil-redundant-strcat-calls - abseil-string-find-startswith abseil-str-cat-append + abseil-string-find-startswith android-cloexec-accept android-cloexec-accept4 android-cloexec-creat @@ -151,6 +152,7 @@ hicpp-special-member-functions (redirects to cppcoreguidelines-special-member-functions) hicpp-static-assert (redirects to misc-static-assert) hicpp-undelegated-constructor (redirects to bugprone-undelegated-constructor) + hicpp-uppercase-literal-suffix (redirects to readability-uppercase-literal-suffix) hicpp-use-auto (redirects to modernize-use-auto) hicpp-use-emplace (redirects to modernize-use-emplace) hicpp-use-equals-default (redirects to modernize-use-equals-default) @@ -159,7 +161,6 @@ hicpp-use-nullptr (redirects to modernize-use-nullptr) hicpp-use-override (redirects to modernize-use-override) hicpp-vararg (redirects to cppcoreguidelines-pro-type-vararg) - hicpp-uppercase-literal-suffix (redirects to readability-uppercase-literal-suffix) llvm-header-guard llvm-include-order llvm-namespace-comment Index: docs/clang-tidy/checks/abseil-anonymous-enclosed-aliases.rst === --- /dev/null +++ docs/clang-tidy/checks/abseil-anonymous-enclosed-aliases.rst @@ -0,0 +1,20 @@ +.. title:: clang-tidy - abseil-anonymous-enclosed-aliases + +abseil-anonymous-enclosed-aliases += + +Finds using declarations outside of anonymous namespaces, and +suggests those declarations be moved to that namespace. + +Example: +.. code-block:: c++ + + namespace foo { + + using something; // should be inside the anonymous namespace below + + namespace { + + } // anonymous namespace + + } // foo Index: docs/ReleaseNotes.rst === --- docs/ReleaseNotes.rst +++ docs/ReleaseNotes.rst @@ -67,6 +67,12 @@ Improvements to clang-tidy -- +- New :doc:`abseil-anonymous-enclosed-aliases + ` check. + + Finds instances of using declarations not in an anonymous namespace + when there exists one. + - New :doc:`abseil-duration-division ` check. Index: clang-tidy/abseil/CMakeLists.txt === --- clang-tidy/abseil/CMakeLists.txt +++ clang-tidy/abseil/CMakeLists.txt @@ -2,6 +2,7 @@ add_clang_library(clangTidyAbseilModule AbseilTidyModule.cpp + AnonymousEnclosedAliasesCheck.cpp DurationDivisionCheck.cpp DurationFactoryFloatCheck.cpp FasterStrsplitDelimiterCheck.cpp Index: clang-tidy/abseil/AnonymousEnclosedAliasesCheck.h === --- /dev/null +++ clang-tidy/abseil/AnonymousEnclosedAliasesCheck.h @@ -0,0 +1,40 @@ +//===--- AnonymousEnclosedAliasesCheck.h - clang-tidy ---*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===--===// + +#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ABSEIL_ANONYMOUSENCLOSEDALIASESCHECK_H +#define
[PATCH] D55409: [clang-tidy] check for using declarations not in an anonymous namespace when there exists one
Ywicheng updated this revision to Diff 177115. Ywicheng added a comment. Updated abseil-anonymous-enclosed-alises.rst and ReleaseNotes.rst CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55409/new/ https://reviews.llvm.org/D55409 Files: clang-tidy/abseil/AbseilTidyModule.cpp clang-tidy/abseil/AnonymousEnclosedAliasesCheck.cpp clang-tidy/abseil/AnonymousEnclosedAliasesCheck.h clang-tidy/abseil/CMakeLists.txt docs/ReleaseNotes.rst docs/clang-tidy/checks/abseil-anonymous-enclosed-aliases.rst docs/clang-tidy/checks/list.rst test/clang-tidy/abseil-anonymous-enclosed-aliases.cpp Index: test/clang-tidy/abseil-anonymous-enclosed-aliases.cpp === --- /dev/null +++ test/clang-tidy/abseil-anonymous-enclosed-aliases.cpp @@ -0,0 +1,27 @@ +// RUN: %check_clang_tidy %s abseil-anonymous-enclosed-aliases %t +namespace bar { + +class something { + +}; +} + +namespace foo { + +using bar::something; + +namespace { + +} // anonymous namespace +} // namespace foo +// CHECK-MESSAGES: :[[@LINE-6]]:12: warning: UsingDecl 'something' should be in the anonymous namespace. See: https://abseil.io/tips/119 [abseil-anonymous-enclosed-aliases] + + +namespace foo { + +namespace { + +using ::bar::something; + +} // anonymous namespace +} // namespace foo Index: docs/clang-tidy/checks/list.rst === --- docs/clang-tidy/checks/list.rst +++ docs/clang-tidy/checks/list.rst @@ -4,14 +4,15 @@ = .. toctree:: + abseil-anonymous-enclosed-aliases abseil-duration-division abseil-duration-factory-float abseil-faster-strsplit-delimiter abseil-no-internal-dependencies abseil-no-namespace abseil-redundant-strcat-calls - abseil-string-find-startswith abseil-str-cat-append + abseil-string-find-startswith android-cloexec-accept android-cloexec-accept4 android-cloexec-creat @@ -151,6 +152,7 @@ hicpp-special-member-functions (redirects to cppcoreguidelines-special-member-functions) hicpp-static-assert (redirects to misc-static-assert) hicpp-undelegated-constructor (redirects to bugprone-undelegated-constructor) + hicpp-uppercase-literal-suffix (redirects to readability-uppercase-literal-suffix) hicpp-use-auto (redirects to modernize-use-auto) hicpp-use-emplace (redirects to modernize-use-emplace) hicpp-use-equals-default (redirects to modernize-use-equals-default) @@ -159,7 +161,6 @@ hicpp-use-nullptr (redirects to modernize-use-nullptr) hicpp-use-override (redirects to modernize-use-override) hicpp-vararg (redirects to cppcoreguidelines-pro-type-vararg) - hicpp-uppercase-literal-suffix (redirects to readability-uppercase-literal-suffix) llvm-header-guard llvm-include-order llvm-namespace-comment Index: docs/clang-tidy/checks/abseil-anonymous-enclosed-aliases.rst === --- /dev/null +++ docs/clang-tidy/checks/abseil-anonymous-enclosed-aliases.rst @@ -0,0 +1,20 @@ +.. title:: clang-tidy - abseil-anonymous-enclosed-aliases + +abseil-anonymous-enclosed-aliases += + +Finds using declarations outside of anonymous namespaces, and +suggests those declarations be moved to that namespace. + +Example: +.. code-block:: c++ + + namespace foo { + + using something; // should be inside the anonymous namespace below + + namespace { + + } // anonymous namespace + + } // foo Index: docs/ReleaseNotes.rst === --- docs/ReleaseNotes.rst +++ docs/ReleaseNotes.rst @@ -67,6 +67,12 @@ Improvements to clang-tidy -- +- New :doc:`abseil-anonymous-enclosed-aliases + ` check. + + Finds instances of using declarations not in an anonymous namespace + when there exists one. + - New :doc:`abseil-duration-division ` check. Index: clang-tidy/abseil/CMakeLists.txt === --- clang-tidy/abseil/CMakeLists.txt +++ clang-tidy/abseil/CMakeLists.txt @@ -2,6 +2,7 @@ add_clang_library(clangTidyAbseilModule AbseilTidyModule.cpp + AnonymousEnclosedAliasesCheck.cpp DurationDivisionCheck.cpp DurationFactoryFloatCheck.cpp FasterStrsplitDelimiterCheck.cpp Index: clang-tidy/abseil/AnonymousEnclosedAliasesCheck.h === --- /dev/null +++ clang-tidy/abseil/AnonymousEnclosedAliasesCheck.h @@ -0,0 +1,40 @@ +//===--- AnonymousEnclosedAliasesCheck.h - clang-tidy ---*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===--===// + +#ifndef
[PATCH] D55409: [clang-tidy] check for using declarations not in an anonymous namespace when there exists one
Ywicheng created this revision. Ywicheng added reviewers: alexfh, hokein, aaron.ballman, astrelni, EricWF, JonasToth. Herald added subscribers: cfe-commits, xazax.hun, mgorny. This patch adds one check corresponding to the Unnamed Namespace section in https://abseil.io/tips/119. In particular, if there exists an anonymous, it is better to put all aliases there. Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D55409 Files: clang-tidy/abseil/AbseilTidyModule.cpp clang-tidy/abseil/AnonymousEnclosedAliasesCheck.cpp clang-tidy/abseil/AnonymousEnclosedAliasesCheck.h clang-tidy/abseil/CMakeLists.txt docs/ReleaseNotes.rst docs/clang-tidy/checks/abseil-anonymous-enclosed-aliases.rst docs/clang-tidy/checks/list.rst test/clang-tidy/abseil-anonymous-enclosed-aliases.cpp Index: test/clang-tidy/abseil-anonymous-enclosed-aliases.cpp === --- /dev/null +++ test/clang-tidy/abseil-anonymous-enclosed-aliases.cpp @@ -0,0 +1,27 @@ +// RUN: %check_clang_tidy %s abseil-anonymous-enclosed-aliases %t +namespace bar { + +class something { + +}; +} + +namespace foo { + +using bar::something; + +namespace { + +} // anonymous namespace +} // namespace foo +// CHECK-MESSAGES: :[[@LINE-6]]:12: warning: UsingDecl 'something' should be in the anonymous namespace. See: https://abseil.io/tips/119 [abseil-anonymous-enclosed-aliases] + + +namespace foo { + +namespace { + +using ::bar::something; + +} // anonymous namespace +} // namespace foo Index: docs/clang-tidy/checks/list.rst === --- docs/clang-tidy/checks/list.rst +++ docs/clang-tidy/checks/list.rst @@ -4,14 +4,15 @@ = .. toctree:: + abseil-anonymous-enclosed-aliases abseil-duration-division abseil-duration-factory-float abseil-faster-strsplit-delimiter abseil-no-internal-dependencies abseil-no-namespace abseil-redundant-strcat-calls - abseil-string-find-startswith abseil-str-cat-append + abseil-string-find-startswith android-cloexec-accept android-cloexec-accept4 android-cloexec-creat @@ -151,6 +152,7 @@ hicpp-special-member-functions (redirects to cppcoreguidelines-special-member-functions) hicpp-static-assert (redirects to misc-static-assert) hicpp-undelegated-constructor (redirects to bugprone-undelegated-constructor) + hicpp-uppercase-literal-suffix (redirects to readability-uppercase-literal-suffix) hicpp-use-auto (redirects to modernize-use-auto) hicpp-use-emplace (redirects to modernize-use-emplace) hicpp-use-equals-default (redirects to modernize-use-equals-default) @@ -159,7 +161,6 @@ hicpp-use-nullptr (redirects to modernize-use-nullptr) hicpp-use-override (redirects to modernize-use-override) hicpp-vararg (redirects to cppcoreguidelines-pro-type-vararg) - hicpp-uppercase-literal-suffix (redirects to readability-uppercase-literal-suffix) llvm-header-guard llvm-include-order llvm-namespace-comment Index: docs/clang-tidy/checks/abseil-anonymous-enclosed-aliases.rst === --- /dev/null +++ docs/clang-tidy/checks/abseil-anonymous-enclosed-aliases.rst @@ -0,0 +1,6 @@ +.. title:: clang-tidy - abseil-anonymous-enclosed-aliases + +abseil-anonymous-enclosed-aliases += + +FIXME: Describe what patterns does the check detect and why. Give examples. Index: docs/ReleaseNotes.rst === --- docs/ReleaseNotes.rst +++ docs/ReleaseNotes.rst @@ -67,6 +67,11 @@ Improvements to clang-tidy -- +- New :doc:`abseil-anonymous-enclosed-aliases + ` check. + + FIXME: add release notes. + - New :doc:`abseil-duration-division ` check. Index: clang-tidy/abseil/CMakeLists.txt === --- clang-tidy/abseil/CMakeLists.txt +++ clang-tidy/abseil/CMakeLists.txt @@ -2,6 +2,7 @@ add_clang_library(clangTidyAbseilModule AbseilTidyModule.cpp + AnonymousEnclosedAliasesCheck.cpp DurationDivisionCheck.cpp DurationFactoryFloatCheck.cpp FasterStrsplitDelimiterCheck.cpp Index: clang-tidy/abseil/AnonymousEnclosedAliasesCheck.h === --- /dev/null +++ clang-tidy/abseil/AnonymousEnclosedAliasesCheck.h @@ -0,0 +1,40 @@ +//===--- AnonymousEnclosedAliasesCheck.h - clang-tidy ---*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===--===// + +#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_ABSEIL_ANONYMOUSENCLOSEDALIASESCHECK_H +#define