1 // RUN: %check_clang_tidy %s google-readability-namespace-comments %t 2 3 namespace n1 { 4 namespace /* a comment */ n2 /* another comment */ { 5 6 7 void f(); // So that the namespace isn't empty. 8 9 10 // CHECK-MESSAGES: :[[@LINE+4]]:1: warning: namespace 'n2' not terminated with a closing comment [google-readability-namespace-comments] 11 // CHECK-MESSAGES: :[[@LINE-7]]:27: note: namespace 'n2' starts here 12 // CHECK-MESSAGES: :[[@LINE+2]]:2: warning: namespace 'n1' not terminated with 13 // CHECK-MESSAGES: :[[@LINE-10]]:11: note: namespace 'n1' starts here 14 }} 15 // CHECK-FIXES: } // namespace n2 16 // CHECK-FIXES: } // namespace n1 17 18 #define MACRO macro_expansion 19 namespace MACRO { 20 void f(); // So that the namespace isn't empty. 21 // 1 22 // 2 23 // 3 24 // 4 25 // 5 26 // 6 27 // 7 28 // CHECK-MESSAGES: :[[@LINE+2]]:1: warning: namespace 'MACRO' not terminated with 29 // CHECK-MESSAGES: :[[@LINE-10]]:11: note: namespace 'MACRO' starts here 30 } 31 // CHECK-FIXES: } // namespace MACRO 32 33 namespace macro_expansion { 34 void ff(); // So that the namespace isn't empty. 35 // 1 36 // 2 37 // 3 38 // 4 39 // 5 40 // 6 41 // 7 42 // CHECK-MESSAGES: :[[@LINE+2]]:1: warning: namespace 'macro_expansion' not terminated with 43 // CHECK-MESSAGES: :[[@LINE-10]]:11: note: namespace 'macro_expansion' starts here 44 } 45 // CHECK-FIXES: } // namespace macro_expansion 46 47 namespace [[deprecated("foo")]] namespace_with_attr { 48 inline namespace inline_namespace { 49 void g(); 50 // 1 51 // 2 52 // 3 53 // 4 54 // 5 55 // 6 56 // 7 57 // CHECK-MESSAGES: :[[@LINE+2]]:1: warning: namespace 'inline_namespace' not terminated with 58 // CHECK-MESSAGES: :[[@LINE-10]]:18: note: namespace 'inline_namespace' starts here 59 } 60 // CHECK-FIXES: } // namespace inline_namespace 61 // CHECK-MESSAGES: :[[@LINE+2]]:1: warning: namespace 'namespace_with_attr' not terminated with 62 // CHECK-MESSAGES: :[[@LINE-15]]:33: note: namespace 'namespace_with_attr' starts here 63 } 64 // CHECK-FIXES: } // namespace namespace_with_attr 65 66 namespace [[deprecated]] { 67 void h(); 68 // 1 69 // 2 70 // 3 71 // 4 72 // 5 73 // 6 74 // 7 75 // CHECK-MESSAGES: :[[@LINE+2]]:1: warning: anonymous namespace not terminated with 76 // CHECK-MESSAGES: :[[@LINE-10]]:26: note: anonymous namespace starts here 77 } 78 // CHECK-FIXES: } // namespace{{$}} 79 80 namespace [[]] { 81 void hh(); 82 // 1 83 // 2 84 // 3 85 // 4 86 // 5 87 // 6 88 // 7 89 // CHECK-MESSAGES: :[[@LINE+2]]:1: warning: anonymous namespace not terminated with 90 // CHECK-MESSAGES: :[[@LINE-10]]:16: note: anonymous namespace starts here 91 } 92 // CHECK-FIXES: } // namespace{{$}} 93 94 namespace short1 { 95 namespace short2 { 96 // Namespaces covering 10 lines or fewer are exempt from this rule. 97 98 99 100 101 102 } 103 } 104 105 namespace n3 { 106 107 108 109 110 111 112 113 114 115 }; // namespace n3 116