10#include "gmock/gmock-matchers.h"
11#include "gmock/gmock.h"
12#include "gtest/gtest.h"
21 std::pair<llvm::StringRef , llvm::StringRef > Cases[] = {
24 namespace ns1 { struct vector {}; }
25 namespace ns2 { struct map {}; }
36 namespace ns1 { struct vector {}; }
37 namespace ns2 { struct map {}; }
49 #define DECLARE(x, y) x y
50 namespace ns { struct vector {}; }
53 DECLARE(ns::vector, v1);
58 #define DECLARE(x, y) x y
59 namespace ns { struct vector {}; }
62 DECLARE(ns::vector, v1);
63 DECLARE(ns::vector, v2);
68 namespace aa { namespace bb { struct map {}; }}
69 using namespace aa::b^b;
75 namespace aa { namespace bb { struct map {}; }}
83 namespace aa { namespace bb { struct map {}; }}
90 namespace aa { namespace bb { struct map {}; }}
98 namespace aa { namespace bb { struct map {}; }}
101 int main() { map M; }
104 namespace aa { namespace bb { struct map {}; }}
106 typedef aa::bb::map map;
107 int main() { map M; }
111 namespace aa { namespace bb { struct map {}; }}
112 using name[[space aa::b]]b;
119 namespace aa { namespace bb { struct map {}; }}
128 namespace aa { namespace bb { struct map {}; }}
129 using namespace aa::bb;
136 namespace aa { namespace bb { struct map {}; }}
137 using namespace aa::bb;
146 namespace bb { struct map {}; }
149 int main() { aa::map m; }
155 namespace bb { struct map {}; }
165 namespace a::b { struct Foo {}; }
167 using namespace a::[[b]];
172 namespace a::b { struct Foo {}; }
176 int main() { a::b::Foo F;}
179 namespace a::b { struct Foo {}; }
181 using namespace a::b;
182 using namespace [[b]];
186 namespace a::b { struct Foo {}; }
190 int main() { b::Foo F;}
196 comma, identifier, numeric
199 using namespace tok^ens;
207 comma, identifier, numeric
212 auto x = tokens::comma;
217 namespace std { inline namespace ns1 { inline namespace ns2 { struct vector {}; }}}
218 using namespace st^d;
224 namespace std { inline namespace ns1 { inline namespace ns2 { struct vector {}; }}}
234 void operator+(const Foo &, int) {}
245 void operator+(const Foo &, int) {}
256 long double operator "" _w(long double);
259 int main() { 1.5_w; }
263 long double operator "" _w(long double);
266 int main() { 1.5_w; }
270 namespace a { inline namespace b { void foobar(); } }
271 using namespace a::[[b]];
272 int main() { foobar(); }
275 namespace a { inline namespace b { void foobar(); } }
277 int main() { a::b::foobar(); }
280 EXPECT_EQ(
C.second, apply(
C.first)) <<
C.first;
#define TWEAK_TEST(TweakID)
TEST_F(BackgroundIndexTest, NoCrashOnErrorFile)
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//