blob: f65057d1ca66c63830a16b10fca59639ccf841fb [file] [log] [blame]
Reid Kleckner9ea2db92019-05-14 18:51:07 +00001// Merge success
2namespace N1 {
3 extern int x0;
4}
5
6// Merge multiple namespaces
7namespace N2 {
8 extern int x;
9}
10namespace N2 {
11 extern float y;
12}
13
14// Merge namespace with conflict
15namespace N3 {
16 extern double z;
17}
18
19namespace Enclosing {
20namespace Nested {
21 const int z = 4;
22}
23}
24
25namespace ContainsInline {
26 inline namespace Inline {
27 const int z = 10;
28 }
29}
30
31namespace TestAliasName = Enclosing::Nested;
32// NOTE: There is no warning on this alias.
33namespace AliasWithSameName = Enclosing::Nested;
34
35namespace TestUsingDecls {
36
37namespace A {
38void foo();
39}
40namespace B {
41using A::foo; // <- a UsingDecl creating a UsingShadow
42}
43
44}// end namespace TestUsingDecls
45
46namespace TestUnresolvedTypenameAndValueDecls {
47
48template <class T> class Base;
49template <class T> class Derived : public Base<T> {
50public:
51 using typename Base<T>::foo;
52 using Base<T>::bar;
53 typedef typename Derived::foo NewUnresolvedUsingType;
54};
55
56} // end namespace TestUnresolvedTypenameAndValueDecls
57
58namespace TestUsingNamespace {
59 using namespace Enclosing;
60}