blob: dcde32d0f06904ee7fed3a9b1f7d4181af1e7a45 [file] [log] [blame]
// RUN: %check_clang_tidy -std=c++17-or-later %s modernize-concat-nested-namespaces %t
namespace n1 {}
namespace n2 {
namespace n3 {
void t();
}
namespace n4 {
void t();
}
} // namespace n2
namespace n5 {
inline namespace n6 {
void t();
}
} // namespace n5
namespace n7 {
void t();
namespace n8 {
void t();
}
} // namespace n7
namespace n9 {
namespace n10 {
// CHECK-MESSAGES: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
// CHECK-FIXES: namespace n9::n10
void t();
} // namespace n10
} // namespace n9
// CHECK-FIXES: }
namespace n11 {
namespace n12 {
// CHECK-MESSAGES: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
// CHECK-FIXES: namespace n11::n12
namespace n13 {
void t();
}
namespace n14 {
void t();
}
} // namespace n12
} // namespace n11
// CHECK-FIXES: }
namespace n15 {
namespace n16 {
void t();
}
inline namespace n17 {
void t();
}
namespace n18 {
namespace n19 {
namespace n20 {
// CHECK-MESSAGES: :[[@LINE-3]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
// CHECK-FIXES: namespace n18::n19::n20
void t();
} // namespace n20
} // namespace n19
} // namespace n18
// CHECK-FIXES: }
namespace n21 {
void t();
}
} // namespace n15
namespace n22 {
namespace {
void t();
}
} // namespace n22
namespace n23 {
namespace {
namespace n24 {
namespace n25 {
// CHECK-MESSAGES: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
// CHECK-FIXES: namespace n24::n25
void t();
} // namespace n25
} // namespace n24
// CHECK-FIXES: }
} // namespace
} // namespace n23
namespace n26::n27 {
namespace n28 {
namespace n29::n30 {
// CHECK-MESSAGES: :[[@LINE-3]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
// CHECK-FIXES: namespace n26::n27::n28::n29::n30
void t() {}
} // namespace n29::n30
} // namespace n28
} // namespace n26::n27
// CHECK-FIXES: }
namespace n31 {
namespace n32 {}
// CHECK-MESSAGES: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
} // namespace n31
// CHECK-FIXES-EMPTY
namespace n33 {
namespace n34 {
namespace n35 {}
// CHECK-MESSAGES: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
} // namespace n34
// CHECK-FIXES-EMPTY
namespace n36 {
void t();
}
} // namespace n33
namespace n37::n38 {
void t();
}
#define IEXIST
namespace n39 {
namespace n40 {
// CHECK-MESSAGES: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
// CHECK-FIXES: namespace n39::n40
#ifdef IEXIST
void t() {}
#endif
} // namespace n40
} // namespace n39
// CHECK-FIXES: }
namespace n41 {
namespace n42 {
// CHECK-MESSAGES: :[[@LINE-2]]:1: warning: nested namespaces can be concatenated [modernize-concat-nested-namespaces]
// CHECK-FIXES: namespace n41::n42
#ifdef IDONTEXIST
void t() {}
#endif
} // namespace n42
} // namespace n41
// CHECK-FIXES: }
int main() {
n26::n27::n28::n29::n30::t();
#ifdef IEXIST
n39::n40::t();
#endif
#ifdef IDONTEXIST
n41::n42::t();
#endif
return 0;
}