brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.5 KiB · 35cb550 Raw
266 lines · cpp
1// RUN: mkdir -p %t.dir2// RUN: cp %S/Inputs/concat-nested-namespaces/modernize-concat-nested-namespaces.h %t.dir/modernize-concat-nested-namespaces.h3// RUN: %check_clang_tidy -std=c++17 -check-suffix=NORMAL %s modernize-concat-nested-namespaces %t.dir/code -- -header-filter=".*" -- -I %t.dir4// RUN: FileCheck -input-file=%t.dir/modernize-concat-nested-namespaces.h %S/Inputs/concat-nested-namespaces/modernize-concat-nested-namespaces.h -check-prefix=CHECK-FIXES5// Restore header file and re-run with c++20:6// RUN: cp %S/Inputs/concat-nested-namespaces/modernize-concat-nested-namespaces.h %t.dir/modernize-concat-nested-namespaces.h7// RUN: %check_clang_tidy -std=c++20 -check-suffixes=NORMAL,CPP20 %s modernize-concat-nested-namespaces %t.dir/code -- -header-filter=".*" -- -I %t.dir8// RUN: FileCheck -input-file=%t.dir/modernize-concat-nested-namespaces.h %S/Inputs/concat-nested-namespaces/modernize-concat-nested-namespaces.h -check-prefix=CHECK-FIXES9 10#include "modernize-concat-nested-namespaces.h"11// CHECK-MESSAGES-NORMAL-DAG: modernize-concat-nested-namespaces.h:1:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]12 13namespace n1 {}14 15namespace n2 {16namespace n3 {17void t();18}19namespace n4 {20void t();21}22} // namespace n223 24namespace n6 {25namespace [[deprecated]] attr_ns {26void t();27} // namespace attr_ns28} // namespace n629 30namespace n7 {31void t();32 33namespace n8 {34void t();35}36} // namespace n737 38namespace n9 {39namespace n10 {40// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]41// CHECK-FIXES-NORMAL: namespace n9::n10 {42void t();43} // namespace n1044} // namespace n945// CHECK-FIXES-NORMAL: } // namespace n9::n1046 47namespace n11 {48namespace n12 {49// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]50// CHECK-FIXES-NORMAL: namespace n11::n12 {51namespace n13 {52void t();53}54namespace n14 {55void t();56}57} // namespace n1258} // namespace n1159// CHECK-FIXES-NORMAL: }60 61namespace n15 {62namespace n16 {63void t();64}65 66inline namespace n17 {67void t();68}69 70namespace n18 {71namespace n19 {72namespace n20 {73// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-3]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]74// CHECK-FIXES-NORMAL: namespace n18::n19::n20 {75void t();76} // namespace n2077} // namespace n1978} // namespace n1879// CHECK-FIXES-NORMAL: }80 81namespace n21 {82void t();83}84} // namespace n1585 86namespace n22 {87namespace {88void t();89}90} // namespace n2291 92namespace n23 {93namespace {94namespace n24 {95namespace n25 {96// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]97// CHECK-FIXES-NORMAL: namespace n24::n25 {98void t();99} // namespace n25100} // namespace n24101// CHECK-FIXES-NORMAL: } // namespace n24::n25102} // namespace103} // namespace n23104 105namespace n26::n27 {106namespace n28 {107namespace n29::n30 {108// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-3]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]109// CHECK-FIXES-NORMAL: namespace n26::n27::n28::n29::n30 {110void t() {}111} // namespace n29::n30112} // namespace n28113} // namespace n26::n27114// CHECK-FIXES-NORMAL: }115 116namespace n31 {117namespace n32 {}118// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]119} // namespace n31120 121namespace n33 {122namespace n34 {123namespace n35 {}124// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]125} // namespace n34126namespace n36 {127void t();128}129} // namespace n33130 131namespace n37::n38 {132void t();133}134 135#define IEXIST136namespace n39 {137namespace n40 {138// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]139// CHECK-FIXES-NORMAL: namespace n39::n40 {140#ifdef IEXIST141void t() {}142#endif143} // namespace n40144} // namespace n39145// CHECK-FIXES-NORMAL: } // namespace n39::n40146 147namespace n41 {148namespace n42 {149// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]150// CHECK-FIXES-NORMAL: namespace n41::n42 {151#ifdef IDONTEXIST152void t() {}153#endif154} // namespace n42155} // namespace n41156// CHECK-FIXES-NORMAL: } // namespace n41::n42157 158 159// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE+1]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]160namespace n43 {161#define N43_INNER162namespace n44 {163void foo() {}164} // namespace n44165#undef N43_INNER166} // namespace n43167// CHECK-FIXES-NORMAL: #define N43_INNER168// CHECK-FIXES-NORMAL: namespace n43::n44 {169// CHECK-FIXES-NORMAL: } // namespace n43::n44170// CHECK-FIXES-NORMAL: #undef N43_INNER171 172// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE+1]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]173namespace n45{174#define N45_INNER175namespace n46176{177#pragma clang diagnostic push178namespace n47 {179void foo() {}180} // namespace n47181#pragma clang diagnostic pop182} // namespace n46183#undef N45_INNER184} // namespace n45185// CHECK-FIXES-NORMAL: #define N45_INNER186// CHECK-FIXES-NORMAL: #pragma clang diagnostic push187// CHECK-FIXES-NORMAL: namespace n45::n46::n47 {188// CHECK-FIXES-NORMAL: } // namespace n45::n46::n47189// CHECK-FIXES-NORMAL: #pragma clang diagnostic pop190// CHECK-FIXES-NORMAL: #undef N45_INNER191 192inline namespace n48 {193// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE+1]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]194namespace n49 {195namespace n50 {196// CHECK-FIXES-NORMAL: namespace n49::n50 {197void foo() {}198}199}200}201 202// CHECK-MESSAGES-CPP20-DAG: :[[@LINE+1]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]203namespace n51 {204inline namespace n52 {205namespace n53 {206// CHECK-FIXES-CPP20: namespace n51::inline n52::n53 {207void foo() {}208}209}210}211 212#if __cplusplus >= 202002L213// CHECK-MESSAGES-CPP20-DAG: :[[@LINE+1]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]214namespace n54 {215namespace n55::inline n56::n57 {216namespace n58 {217// CHECK-FIXES-CPP20: namespace n54::n55::inline n56::n57::n58 {218void foo() {}219}220}221}222#endif223 224// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE+1]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]225namespace avoid_add_close_comment {226namespace inner {227void foo() {}228}229}230// CHECK-FIXES-NORMAL: namespace avoid_add_close_comment::inner {231// CHECK-FIXES-NORMAL-NOT: } // namespace avoid_add_close_comment::inner232 233// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE+1]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]234namespace avoid_change_close_comment {235namespace inner {236void foo() {}237} // namespace inner and other comments238} // namespace avoid_change_close_comment and other comments239// CHECK-FIXES-NORMAL: namespace avoid_change_close_comment::inner {240// CHECK-FIXES-NORMAL-NOT: } // namespace avoid_add_close_comment::inner241 242namespace /*::*/ comment_colon_1 {243void foo() {}244} // namespace comment_colon_1245// CHECK-FIXES-NORMAL: namespace /*::*/ comment_colon_1 {246 247// CHECK-MESSAGES-NORMAL-DAG: :[[@LINE+1]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]248namespace /*::*/ comment_colon_2 {249namespace comment_colon_2 {250void foo() {}251} // namespace comment_colon_2252} // namespace comment_colon_2253 254int main() {255  n26::n27::n28::n29::n30::t();256#ifdef IEXIST257  n39::n40::t();258#endif259 260#ifdef IDONTEXIST261  n41::n42::t();262#endif263 264  return 0;265}266