Lines Matching full:n
73 std::string Code = "namespace na {\n" in TEST_F()
74 "namespace nx {\n" in TEST_F()
75 "class A {};\n" in TEST_F()
76 "} // namespace nx\n" in TEST_F()
77 "} // namespace na\n"; in TEST_F()
78 std::string Expected = "namespace na {\n" in TEST_F()
79 "namespace nx {\n" in TEST_F()
80 "class A {};\n" in TEST_F()
81 "} // namespace nx\n" in TEST_F()
82 "} // namespace na\n"; in TEST_F()
87 std::string Code = "namespace na {\n" in TEST_F()
88 "namespace nb {\n" in TEST_F()
89 "class A {};\n" in TEST_F()
90 "} // namespace nb\n" in TEST_F()
91 "} // namespace na\n"; in TEST_F()
92 std::string Expected = "\n\n" in TEST_F()
93 "namespace x {\n" in TEST_F()
94 "namespace y {\n" in TEST_F()
95 "class A {};\n" in TEST_F()
96 "} // namespace y\n" in TEST_F()
97 "} // namespace x\n"; in TEST_F()
103 std::string Code = "namespace na {\n" in TEST_F()
104 "namespace nb {\n" in TEST_F()
105 "class A {};\n" in TEST_F()
106 "} // namespace nb\n" in TEST_F()
107 "} // namespace na\n"; in TEST_F()
108 std::string Expected = "namespace na {\n" in TEST_F()
109 "namespace nb {\n" in TEST_F()
110 "namespace nc {\n" in TEST_F()
111 "class A {};\n" in TEST_F()
112 "} // namespace nc\n" in TEST_F()
113 "} // namespace nb\n" in TEST_F()
114 "} // namespace na\n"; in TEST_F()
120 std::string Code = "namespace na {\n" in TEST_F()
121 "namespace nb {\n" in TEST_F()
122 "\n" in TEST_F()
123 "class A {};\n" in TEST_F()
124 "\n" in TEST_F()
125 "} // namespace nb\n" in TEST_F()
126 "} // namespace na\n"; in TEST_F()
127 std::string Expected = "namespace na {\n" in TEST_F()
128 "namespace nb {\n" in TEST_F()
129 "namespace nc {\n" in TEST_F()
130 "\n" in TEST_F()
131 "class A {};\n" in TEST_F()
132 "\n" in TEST_F()
133 "} // namespace nc\n" in TEST_F()
134 "} // namespace nb\n" in TEST_F()
135 "} // namespace na\n"; in TEST_F()
141 std::string Code = "namespace na {\n" in TEST_F()
142 "namespace nb {\n" in TEST_F()
143 "\n" in TEST_F()
144 "class A {};\n" in TEST_F()
145 "\n" in TEST_F()
146 "} // namespace nb\n" in TEST_F()
147 "} // namespace na\n"; in TEST_F()
148 std::string Expected = "\n\n" in TEST_F()
149 "namespace nx {\n" in TEST_F()
150 "namespace ny {\n" in TEST_F()
151 "\n" in TEST_F()
152 "class A {};\n" in TEST_F()
153 "\n" in TEST_F()
154 "} // namespace ny\n" in TEST_F()
155 "} // namespace nx\n"; in TEST_F()
161 std::string Code = "namespace na {\n" in TEST_F()
162 "class A {};\n" in TEST_F()
163 "namespace nb {\n" in TEST_F()
164 "class B {};\n" in TEST_F()
165 "class C {};\n" in TEST_F()
166 "void f() { A a; B b; }\n" in TEST_F()
167 "} // namespace nb\n" in TEST_F()
168 "} // namespace na\n"; in TEST_F()
169 std::string Expected = "namespace na {\n" in TEST_F()
170 "class A {};\n" in TEST_F()
171 "namespace nb {\n" in TEST_F()
172 "namespace nc {\n" in TEST_F()
173 "class B {};\n" in TEST_F()
174 "class C {};\n" in TEST_F()
175 "void f() { A a; B b; }\n" in TEST_F()
176 "} // namespace nc\n" in TEST_F()
177 "} // namespace nb\n" in TEST_F()
178 "} // namespace na\n"; in TEST_F()
184 std::string Code = "namespace na {\n" in TEST_F()
185 "namespace nb {\n" in TEST_F()
186 "class A {};\n" in TEST_F()
187 "} // namespace nb\n" in TEST_F()
188 "} // namespace na\n"; in TEST_F()
189 std::string Expected = "namespace na {\n" in TEST_F()
190 "\n" in TEST_F()
191 "namespace nc {\n" in TEST_F()
192 "class A {};\n" in TEST_F()
193 "} // namespace nc\n" in TEST_F()
194 "} // namespace na\n"; in TEST_F()
200 std::string Code = "namespace na {\n" in TEST_F()
201 "class A {};\n" in TEST_F()
202 "namespace nb {\n" in TEST_F()
203 "class X { A a; };\n" in TEST_F()
204 "} // namespace nb\n" in TEST_F()
205 "} // namespace na\n"; in TEST_F()
206 std::string Expected = "namespace na {\n" in TEST_F()
207 "class A {};\n" in TEST_F()
208 "\n" in TEST_F()
209 "namespace nc {\n" in TEST_F()
210 "class X { A a; };\n" in TEST_F()
211 "} // namespace nc\n" in TEST_F()
212 "} // namespace na\n"; in TEST_F()
217 std::string Code = "namespace x {\n" in TEST_F()
218 "namespace z {\n" in TEST_F()
219 "class Z {};\n" in TEST_F()
220 "} // namespace z\n" in TEST_F()
221 "namespace y {\n" in TEST_F()
222 "class T {};\n" in TEST_F()
223 "} // namespace y\n" in TEST_F()
224 "} // namespace x\n" in TEST_F()
225 "namespace na {\n" in TEST_F()
226 "class A{};\n" in TEST_F()
227 "namespace nb {\n" in TEST_F()
228 "class X { A a; x::z::Z zz; x::y::T t; };\n" in TEST_F()
229 "} // namespace nb\n" in TEST_F()
230 "} // namespace na\n"; in TEST_F()
231 std::string Expected = "namespace x {\n" in TEST_F()
232 "namespace z {\n" in TEST_F()
233 "class Z {};\n" in TEST_F()
234 "} // namespace z\n" in TEST_F()
235 "namespace y {\n" in TEST_F()
236 "class T {};\n" in TEST_F()
237 "} // namespace y\n" in TEST_F()
238 "} // namespace x\n" in TEST_F()
239 "namespace na {\n" in TEST_F()
240 "class A {};\n\n" in TEST_F()
241 "} // namespace na\n" in TEST_F()
242 "namespace x {\n" in TEST_F()
243 "namespace y {\n" in TEST_F()
244 "class X { na::A a; z::Z zz; T t; };\n" in TEST_F()
245 "} // namespace y\n" in TEST_F()
246 "} // namespace x\n"; in TEST_F()
252 std::string Code = "namespace na {\n" in TEST_F()
253 "class A {};\n" in TEST_F()
254 "namespace nb {\n" in TEST_F()
255 "class B {};\n" in TEST_F()
256 "} // namespace nb\n" in TEST_F()
257 "} // namespace na\n"; in TEST_F()
258 std::string Expected = "namespace na {\n" in TEST_F()
259 "class A {};\n" in TEST_F()
260 "\n" in TEST_F()
261 "namespace x {\n" in TEST_F()
262 "namespace y {\n" in TEST_F()
263 "class B {};\n" in TEST_F()
264 "} // namespace y\n" in TEST_F()
265 "} // namespace x\n" in TEST_F()
266 "} // namespace na\n"; in TEST_F()
271 std::string Code = "namespace na {\n" in TEST_F()
272 "class C_A {};\n" in TEST_F()
273 "namespace nc {\n" in TEST_F()
275 "} // namespace nc\n" in TEST_F()
276 "namespace nb {\n" in TEST_F()
277 "class C_X {\n" in TEST_F()
278 "public:\n" in TEST_F()
279 " C_A a;\n" in TEST_F()
280 " nc::C_C c;\n" in TEST_F()
281 "};\n" in TEST_F()
282 "class C_Y {\n" in TEST_F()
283 " C_X x;\n" in TEST_F()
284 "};\n" in TEST_F()
285 "} // namespace nb\n" in TEST_F()
286 "} // namespace na\n"; in TEST_F()
287 std::string Expected = "namespace na {\n" in TEST_F()
288 "class C_A {};\n" in TEST_F()
289 "namespace nc {\n" in TEST_F()
291 "} // namespace nc\n" in TEST_F()
292 "\n" in TEST_F()
293 "} // namespace na\n" in TEST_F()
294 "namespace x {\n" in TEST_F()
295 "namespace y {\n" in TEST_F()
296 "class C_X {\n" in TEST_F()
297 "public:\n" in TEST_F()
298 " na::C_A a;\n" in TEST_F()
299 " na::nc::C_C c;\n" in TEST_F()
300 "};\n" in TEST_F()
301 "class C_Y {\n" in TEST_F()
302 " C_X x;\n" in TEST_F()
303 "};\n" in TEST_F()
304 "} // namespace y\n" in TEST_F()
305 "} // namespace x\n"; in TEST_F()
310 std::string Code = "namespace na {\n" in TEST_F()
311 "class A {};\n" in TEST_F()
312 "template <typename T>\n" in TEST_F()
313 "class B {};\n" in TEST_F()
314 "template <typename T1, typename T2>\n" in TEST_F()
315 "class Two {};\n" in TEST_F()
316 "namespace nc { class C {}; }\n" in TEST_F()
317 "} // na\n" in TEST_F()
318 "\n" in TEST_F()
319 "namespace na {\n" in TEST_F()
320 "namespace nb {\n" in TEST_F()
321 "void f() {\n" in TEST_F()
322 " B<A> b;\n" in TEST_F()
323 " B<nc::C> b_c;\n" in TEST_F()
324 " Two<A, nc::C> two;\n" in TEST_F()
325 "}\n" in TEST_F()
326 "} // nb\n" in TEST_F()
327 "} // na\n"; in TEST_F()
328 std::string Expected = "namespace na {\n" in TEST_F()
329 "class A {};\n" in TEST_F()
330 "template <typename T>\n" in TEST_F()
331 "class B {};\n" in TEST_F()
332 "template <typename T1, typename T2>\n" in TEST_F()
333 "class Two {};\n" in TEST_F()
334 "namespace nc { class C {}; }\n" in TEST_F()
335 "} // na\n" in TEST_F()
336 "\n" in TEST_F()
337 "\n" in TEST_F()
338 "namespace x {\n" in TEST_F()
339 "namespace y {\n" in TEST_F()
340 "void f() {\n" in TEST_F()
341 " na::B<na::A> b;\n" in TEST_F()
342 " na::B<na::nc::C> b_c;\n" in TEST_F()
343 " na::Two<na::A, na::nc::C> two;\n" in TEST_F()
344 "}\n" in TEST_F()
345 "} // namespace y\n" in TEST_F()
346 "} // namespace x\n"; in TEST_F()
351 std::string Code = "namespace na {\n" in TEST_F()
352 "namespace nb {\n" in TEST_F()
353 "class FWD;\n" in TEST_F()
354 "class FWD2;\n" in TEST_F()
355 "class A {\n" in TEST_F()
356 " FWD *fwd;\n" in TEST_F()
357 "};\n" in TEST_F()
358 "} // namespace nb\n" in TEST_F()
359 "} // namespace na\n"; in TEST_F()
360 std::string Expected = "namespace na {\n" in TEST_F()
361 "namespace nb {\n" in TEST_F()
362 "class FWD;\n" in TEST_F()
363 "class FWD2;\n" in TEST_F()
364 "} // namespace nb\n" in TEST_F()
365 "} // namespace na\n" in TEST_F()
366 "namespace x {\n" in TEST_F()
367 "namespace y {\n" in TEST_F()
368 "\n" in TEST_F()
369 "class A {\n" in TEST_F()
370 " na::nb::FWD *fwd;\n" in TEST_F()
371 "};\n" in TEST_F()
372 "} // namespace y\n" in TEST_F()
373 "} // namespace x\n"; in TEST_F()
378 std::string Code = "namespace na {\n" in TEST_F()
379 "namespace nb {\n" in TEST_F()
380 "\n" in TEST_F()
381 "class FWD;\n" in TEST_F()
382 "class FWD2;\n" in TEST_F()
383 "class A {\n" in TEST_F()
384 " FWD *fwd;\n" in TEST_F()
385 "};\n" in TEST_F()
386 "\n" in TEST_F()
387 "} // namespace nb\n" in TEST_F()
388 "} // namespace na\n"; in TEST_F()
389 std::string Expected = "namespace na {\n" in TEST_F()
390 "namespace nb {\n" in TEST_F()
391 "class FWD;\n" in TEST_F()
392 "class FWD2;\n" in TEST_F()
393 "} // namespace nb\n" in TEST_F()
394 "} // namespace na\n" in TEST_F()
395 "namespace x {\n" in TEST_F()
396 "namespace y {\n" in TEST_F()
397 "\n" in TEST_F()
398 "class A {\n" in TEST_F()
399 " na::nb::FWD *fwd;\n" in TEST_F()
400 "};\n" in TEST_F()
401 "\n" in TEST_F()
402 "} // namespace y\n" in TEST_F()
403 "} // namespace x\n"; in TEST_F()
408 std::string Code = "namespace na {\n" in TEST_F()
409 "namespace nb {\n" in TEST_F()
410 "class FWD;\n" in TEST_F()
411 "template<typename T> class FWD_TEMP;\n" in TEST_F()
412 "class A {\n" in TEST_F()
413 " FWD *fwd;\n" in TEST_F()
414 "};\n" in TEST_F()
415 "template<typename T> class TEMP {};\n" in TEST_F()
416 "} // namespace nb\n" in TEST_F()
417 "} // namespace na\n"; in TEST_F()
418 std::string Expected = "namespace na {\n" in TEST_F()
419 "namespace nb {\n" in TEST_F()
420 "class FWD;\n" in TEST_F()
421 "template<typename T> class FWD_TEMP;\n" in TEST_F()
422 "} // namespace nb\n" in TEST_F()
423 "} // namespace na\n" in TEST_F()
424 "namespace x {\n" in TEST_F()
425 "namespace y {\n" in TEST_F()
426 "\n" in TEST_F()
427 "class A {\n" in TEST_F()
428 " na::nb::FWD *fwd;\n" in TEST_F()
429 "};\n" in TEST_F()
430 "template<typename T> class TEMP {};\n" in TEST_F()
431 "} // namespace y\n" in TEST_F()
432 "} // namespace x\n"; in TEST_F()
437 std::string Code = "namespace na {\n" in TEST_F()
438 "namespace nb {\n" in TEST_F()
439 "class A {\n" in TEST_F()
440 " class FWD;\n" in TEST_F()
441 " FWD *fwd;\n" in TEST_F()
442 " template<typename T> class FWD_TEMP;\n" in TEST_F()
443 "};\n" in TEST_F()
444 "} // namespace nb\n" in TEST_F()
445 "} // namespace na\n"; in TEST_F()
446 std::string Expected = "\n\n" in TEST_F()
447 "namespace x {\n" in TEST_F()
448 "namespace y {\n" in TEST_F()
449 "class A {\n" in TEST_F()
450 " class FWD;\n" in TEST_F()
451 " FWD *fwd;\n" in TEST_F()
452 " template<typename T> class FWD_TEMP;\n" in TEST_F()
453 "};\n" in TEST_F()
454 "} // namespace y\n" in TEST_F()
455 "} // namespace x\n"; in TEST_F()
460 std::string Code = "namespace na {\n" in TEST_F()
461 "class C_A {};\n" in TEST_F()
462 "namespace nc {\n" in TEST_F()
464 "} // namespace nc\n" in TEST_F()
465 "namespace nb {\n" in TEST_F()
466 "void fwd();\n" in TEST_F()
467 "void f(C_A ca, nc::C_C cc) {\n" in TEST_F()
468 " C_A ca_1 = ca;\n" in TEST_F()
469 "}\n" in TEST_F()
470 "} // namespace nb\n" in TEST_F()
471 "} // namespace na\n"; in TEST_F()
473 std::string Expected = "namespace na {\n" in TEST_F()
474 "class C_A {};\n" in TEST_F()
475 "namespace nc {\n" in TEST_F()
477 "} // namespace nc\n" in TEST_F()
478 "\n" in TEST_F()
479 "} // namespace na\n" in TEST_F()
480 "namespace x {\n" in TEST_F()
481 "namespace y {\n" in TEST_F()
482 "void fwd();\n" in TEST_F()
483 "void f(na::C_A ca, na::nc::C_C cc) {\n" in TEST_F()
484 " na::C_A ca_1 = ca;\n" in TEST_F()
485 "}\n" in TEST_F()
486 "} // namespace y\n" in TEST_F()
487 "} // namespace x\n"; in TEST_F()
492 std::string Code = "class GLOB {};\n" in TEST_F()
493 "using BLOG = GLOB;\n" in TEST_F()
494 "namespace na {\n" in TEST_F()
495 "namespace nc {\n" in TEST_F()
496 "class SAME {};\n" in TEST_F()
497 "}\n" in TEST_F()
498 "namespace nd {\n" in TEST_F()
499 "class SAME {};\n" in TEST_F()
500 "}\n" in TEST_F()
501 "namespace nb {\n" in TEST_F()
502 "using nc::SAME;\n" in TEST_F()
503 "using YO = nd::SAME;\n" in TEST_F()
504 "typedef nd::SAME IDENTICAL;\n" in TEST_F()
505 "void f(nd::SAME Same) {}\n" in TEST_F()
506 "} // namespace nb\n" in TEST_F()
507 "} // namespace na\n"; in TEST_F()
509 std::string Expected = "class GLOB {};\n" in TEST_F()
510 "using BLOG = GLOB;\n" in TEST_F()
511 "namespace na {\n" in TEST_F()
512 "namespace nc {\n" in TEST_F()
513 "class SAME {};\n" in TEST_F()
514 "}\n" in TEST_F()
515 "namespace nd {\n" in TEST_F()
516 "class SAME {};\n" in TEST_F()
517 "}\n" in TEST_F()
518 "\n" in TEST_F()
519 "} // namespace na\n" in TEST_F()
520 "namespace x {\n" in TEST_F()
521 "namespace y {\n" in TEST_F()
522 "using ::na::nc::SAME;\n" in TEST_F()
523 "using YO = na::nd::SAME;\n" in TEST_F()
524 "typedef na::nd::SAME IDENTICAL;\n" in TEST_F()
525 "void f(na::nd::SAME Same) {}\n" in TEST_F()
526 "} // namespace y\n" in TEST_F()
527 "} // namespace x\n"; in TEST_F()
532 std::string Code = "namespace na {\n" in TEST_F()
533 "class A {};\n" in TEST_F()
534 "class Base { public: Base() {} void m() {} };\n" in TEST_F()
535 "namespace nb {\n" in TEST_F()
536 "class D : public Base {\n" in TEST_F()
537 "public:\n" in TEST_F()
538 " using AA = A; using B = Base;\n" in TEST_F()
539 " using Base::m; using Base::Base;\n" in TEST_F()
541 "} // namespace nb\n" in TEST_F()
542 "} // namespace na\n"; in TEST_F()
544 std::string Expected = "namespace na {\n" in TEST_F()
545 "class A {};\n" in TEST_F()
546 "class Base { public: Base() {} void m() {} };\n" in TEST_F()
547 "\n" in TEST_F()
548 "} // namespace na\n" in TEST_F()
549 "namespace x {\n" in TEST_F()
550 "namespace y {\n" in TEST_F()
551 "class D : public na::Base {\n" in TEST_F()
552 "public:\n" in TEST_F()
553 " using AA = na::A; using B = na::Base;\n" in TEST_F()
554 " using Base::m; using Base::Base;\n" in TEST_F()
556 "} // namespace y\n" in TEST_F()
557 "} // namespace x\n"; in TEST_F()
563 "namespace na {\n" in TEST_F()
564 "class C_A {\n" in TEST_F()
565 "public:\n" in TEST_F()
566 " class Nested {\n" in TEST_F()
567 " public:\n" in TEST_F()
568 " static int NestedX;\n" in TEST_F()
569 " static void nestedFunc() {}\n" in TEST_F()
570 " };\n" in TEST_F()
571 "};\n" in TEST_F()
572 "namespace nb {\n" in TEST_F()
573 "class C_X {\n" in TEST_F()
574 " C_A na;\n" in TEST_F()
575 " C_A::Nested nested;\n" in TEST_F()
576 " void f() {\n" in TEST_F()
577 " C_A::Nested::nestedFunc();\n" in TEST_F()
578 " int X = C_A::Nested::NestedX;\n" in TEST_F()
579 " }\n" in TEST_F()
580 "};\n" in TEST_F()
581 "} // namespace nb\n" in TEST_F()
582 "} // namespace na\n"; in TEST_F()
584 "namespace na {\n" in TEST_F()
585 "class C_A {\n" in TEST_F()
586 "public:\n" in TEST_F()
587 " class Nested {\n" in TEST_F()
588 " public:\n" in TEST_F()
589 " static int NestedX;\n" in TEST_F()
590 " static void nestedFunc() {}\n" in TEST_F()
591 " };\n" in TEST_F()
592 "};\n" in TEST_F()
593 "\n" in TEST_F()
594 "} // namespace na\n" in TEST_F()
595 "namespace x {\n" in TEST_F()
596 "namespace y {\n" in TEST_F()
597 "class C_X {\n" in TEST_F()
598 " na::C_A na;\n" in TEST_F()
599 " na::C_A::Nested nested;\n" in TEST_F()
600 " void f() {\n" in TEST_F()
601 " na::C_A::Nested::nestedFunc();\n" in TEST_F()
602 " int X = na::C_A::Nested::NestedX;\n" in TEST_F()
603 " }\n" in TEST_F()
604 "};\n" in TEST_F()
605 "} // namespace y\n" in TEST_F()
606 "} // namespace x\n"; in TEST_F()
612 "namespace na {\n" in TEST_F()
613 "class A {\n" in TEST_F()
614 "public:\n" in TEST_F()
615 " static void f() {}\n" in TEST_F()
616 " static void g();\n" in TEST_F()
617 "};\n" in TEST_F()
619 "void a_f() {}\n" in TEST_F()
620 "static void static_f() {}\n" in TEST_F()
621 "namespace nb {\n" in TEST_F()
622 "void f() { a_f(); static_f(); A::f(); }\n" in TEST_F()
623 "void g() { f(); A::g(); }\n" in TEST_F()
624 "} // namespace nb\n" in TEST_F()
625 "} // namespace na\n"; in TEST_F()
627 "namespace na {\n" in TEST_F()
628 "class A {\n" in TEST_F()
629 "public:\n" in TEST_F()
630 " static void f() {}\n" in TEST_F()
631 " static void g();\n" in TEST_F()
632 "};\n" in TEST_F()
634 "void a_f() {}\n" in TEST_F()
635 "static void static_f() {}\n" in TEST_F()
636 "\n" in TEST_F()
637 "} // namespace na\n" in TEST_F()
638 "namespace x {\n" in TEST_F()
639 "namespace y {\n" in TEST_F()
640 "void f() { na::a_f(); na::static_f(); na::A::f(); }\n" in TEST_F()
641 "void g() { f(); na::A::g(); }\n" in TEST_F()
642 "} // namespace y\n" in TEST_F()
643 "} // namespace x\n"; in TEST_F()
649 "namespace na {\n" in TEST_F()
650 "class A {\n" in TEST_F()
651 "public:\n" in TEST_F()
652 " int x;\n" in TEST_F()
653 " bool operator==(const A &RHS) const { return x == RHS.x; }\n" in TEST_F()
654 "};\n" in TEST_F()
655 "bool operator<(const A &LHS, const A &RHS) { return LHS.x == RHS.x; }\n" in TEST_F()
656 "namespace nb {\n" in TEST_F()
657 "bool f() {\n" in TEST_F()
658 " A x, y;\n" in TEST_F()
659 " auto f = operator<;\n" in TEST_F()
660 " return (x == y) && (x < y) && (operator<(x, y));\n" in TEST_F()
661 "}\n" in TEST_F()
662 "} // namespace nb\n" in TEST_F()
663 "} // namespace na\n"; in TEST_F()
665 "namespace na {\n" in TEST_F()
666 "class A {\n" in TEST_F()
667 "public:\n" in TEST_F()
668 " int x;\n" in TEST_F()
669 " bool operator==(const A &RHS) const { return x == RHS.x; }\n" in TEST_F()
670 "};\n" in TEST_F()
671 "bool operator<(const A &LHS, const A &RHS) { return LHS.x == RHS.x; }\n" in TEST_F()
672 "\n" in TEST_F()
673 "} // namespace na\n" in TEST_F()
674 "namespace x {\n" in TEST_F()
675 "namespace y {\n" in TEST_F()
676 "bool f() {\n" in TEST_F()
677 " na::A x, y;\n" in TEST_F()
678 " auto f = na::operator<;\n" in TEST_F()
681 " return (x == y) && (x < y) && (operator<(x,y));\n" in TEST_F()
682 "}\n" in TEST_F()
683 "} // namespace y\n" in TEST_F()
684 "} // namespace x\n"; in TEST_F()
689 std::string Code = "namespace na {\n" in TEST_F()
690 "class A {\n" in TEST_F()
691 "public:\n" in TEST_F()
692 " static void f() {}\n" in TEST_F()
693 "};\n" in TEST_F()
694 "void a_f() {}\n" in TEST_F()
695 "static void s_f() {}\n" in TEST_F()
696 "namespace nb {\n" in TEST_F()
697 "void f() {\n" in TEST_F()
698 " auto *ref1 = A::f;\n" in TEST_F()
699 " auto *ref2 = a_f;\n" in TEST_F()
700 " auto *ref3 = s_f;\n" in TEST_F()
701 "}\n" in TEST_F()
702 "} // namespace nb\n" in TEST_F()
703 "} // namespace na\n"; in TEST_F()
705 "namespace na {\n" in TEST_F()
706 "class A {\n" in TEST_F()
707 "public:\n" in TEST_F()
708 " static void f() {}\n" in TEST_F()
709 "};\n" in TEST_F()
710 "void a_f() {}\n" in TEST_F()
711 "static void s_f() {}\n" in TEST_F()
712 "\n" in TEST_F()
713 "} // namespace na\n" in TEST_F()
714 "namespace x {\n" in TEST_F()
715 "namespace y {\n" in TEST_F()
716 "void f() {\n" in TEST_F()
717 " auto *ref1 = na::A::f;\n" in TEST_F()
718 " auto *ref2 = na::a_f;\n" in TEST_F()
719 " auto *ref3 = na::s_f;\n" in TEST_F()
720 "}\n" in TEST_F()
721 "} // namespace y\n" in TEST_F()
722 "} // namespace x\n"; in TEST_F()
727 std::string Code = "namespace na {\n" in TEST_F()
728 "int GlobA;\n" in TEST_F()
729 "static int GlobAStatic = 0;\n" in TEST_F()
730 "namespace nc { int GlobC; }\n" in TEST_F()
731 "namespace nb {\n" in TEST_F()
732 "int GlobB;\n" in TEST_F()
733 "void f() {\n" in TEST_F()
734 " int a = GlobA;\n" in TEST_F()
735 " int b = GlobAStatic;\n" in TEST_F()
736 " int c = nc::GlobC;\n" in TEST_F()
737 "}\n" in TEST_F()
738 "} // namespace nb\n" in TEST_F()
739 "} // namespace na\n"; in TEST_F()
741 std::string Expected = "namespace na {\n" in TEST_F()
742 "int GlobA;\n" in TEST_F()
743 "static int GlobAStatic = 0;\n" in TEST_F()
744 "namespace nc { int GlobC; }\n" in TEST_F()
745 "\n" in TEST_F()
746 "} // namespace na\n" in TEST_F()
747 "namespace x {\n" in TEST_F()
748 "namespace y {\n" in TEST_F()
749 "int GlobB;\n" in TEST_F()
750 "void f() {\n" in TEST_F()
751 " int a = na::GlobA;\n" in TEST_F()
752 " int b = na::GlobAStatic;\n" in TEST_F()
753 " int c = na::nc::GlobC;\n" in TEST_F()
754 "}\n" in TEST_F()
755 "} // namespace y\n" in TEST_F()
756 "} // namespace x\n"; in TEST_F()
762 std::string Code = "namespace na {\n" in TEST_F()
763 "class A {\n" in TEST_F()
764 "public:\n" in TEST_F()
765 "static int A1;\n" in TEST_F()
766 "static int A2;\n" in TEST_F()
767 "};\n" in TEST_F()
768 "int A::A1 = 0;\n" in TEST_F()
769 "namespace nb {\n" in TEST_F()
770 "void f() {\n" in TEST_F()
771 " int a = A::A1; int b = A::A2;\n" in TEST_F()
772 "}\n" in TEST_F()
773 "} // namespace nb\n" in TEST_F()
774 "} // namespace na\n"; in TEST_F()
776 std::string Expected = "namespace na {\n" in TEST_F()
777 "class A {\n" in TEST_F()
778 "public:\n" in TEST_F()
779 "static int A1;\n" in TEST_F()
780 "static int A2;\n" in TEST_F()
781 "};\n" in TEST_F()
782 "int A::A1 = 0;\n" in TEST_F()
783 "\n" in TEST_F()
784 "} // namespace na\n" in TEST_F()
785 "namespace x {\n" in TEST_F()
786 "namespace y {\n" in TEST_F()
787 "void f() {\n" in TEST_F()
788 " int a = na::A::A1; int b = na::A::A2;\n" in TEST_F()
789 "}\n" in TEST_F()
790 "} // namespace y\n" in TEST_F()
791 "} // namespace x\n"; in TEST_F()
797 std::string Code = "namespace na {\n" in TEST_F()
798 "namespace nb {\n" in TEST_F()
799 "class A;\n" in TEST_F()
800 "class B {};\n" in TEST_F()
803 std::string Expected = "namespace na {\n" in TEST_F()
804 "namespace nb {\n" in TEST_F()
805 "class A;\n" in TEST_F()
806 "}\n" in TEST_F()
807 "}\n" in TEST_F()
808 "namespace x {\n" in TEST_F()
809 "namespace y {\n" in TEST_F()
810 "\n" in TEST_F()
811 "class B {};\n" in TEST_F()
812 "} // namespace y\n" in TEST_F()
813 "} // namespace x\n"; in TEST_F()
818 std::string Code = "namespace na {\n" in TEST_F()
819 "namespace nb {\n" in TEST_F()
820 "\n\n" in TEST_F()
821 "// Wild comments.\n" in TEST_F()
822 "\n" in TEST_F()
823 "// Comments.\n" in TEST_F()
824 "// More comments.\n" in TEST_F()
825 "class B {\n" in TEST_F()
826 " // Private comments.\n" in TEST_F()
827 " int a;\n" in TEST_F()
828 "};\n" in TEST_F()
829 "}\n" in TEST_F()
831 std::string Expected = "\n" in TEST_F()
832 "\n" in TEST_F()
833 "namespace x {\n" in TEST_F()
834 "namespace y {\n" in TEST_F()
835 "\n\n" in TEST_F()
836 "// Wild comments.\n" in TEST_F()
837 "\n" in TEST_F()
838 "// Comments.\n" in TEST_F()
839 "// More comments.\n" in TEST_F()
840 "class B {\n" in TEST_F()
841 " // Private comments.\n" in TEST_F()
842 " int a;\n" in TEST_F()
843 "};\n" in TEST_F()
844 "} // namespace y\n" in TEST_F()
845 "} // namespace x\n"; in TEST_F()
850 std::string Code = "namespace glob {\n" in TEST_F()
851 "class Glob {};\n" in TEST_F()
852 "void GFunc() {}\n" in TEST_F()
853 "}\n" in TEST_F()
854 "using glob::Glob;\n" in TEST_F()
855 "using glob::GFunc;\n" in TEST_F()
856 "namespace na {\n" in TEST_F()
857 "namespace nb {\n" in TEST_F()
858 "void f() { Glob g; GFunc(); }\n" in TEST_F()
859 "} // namespace nb\n" in TEST_F()
860 "} // namespace na\n"; in TEST_F()
862 std::string Expected = "namespace glob {\n" in TEST_F()
863 "class Glob {};\n" in TEST_F()
864 "void GFunc() {}\n" in TEST_F()
865 "}\n" in TEST_F()
866 "using glob::Glob;\n" in TEST_F()
867 "using glob::GFunc;\n" in TEST_F()
868 "\n" in TEST_F()
869 "namespace x {\n" in TEST_F()
870 "namespace y {\n" in TEST_F()
871 "void f() { Glob g; GFunc(); }\n" in TEST_F()
872 "} // namespace y\n" in TEST_F()
873 "} // namespace x\n"; in TEST_F()
878 std::string Code = "namespace util {\n" in TEST_F()
879 "class Util {};\n" in TEST_F()
880 "void func() {}\n" in TEST_F()
881 "}\n" in TEST_F()
882 "namespace na {\n" in TEST_F()
883 "namespace nb {\n" in TEST_F()
884 "namespace {\n" in TEST_F()
885 "using ::util::Util;\n" in TEST_F()
886 "using ::util::func;\n" in TEST_F()
887 "void f() { Util u; func(); }\n" in TEST_F()
888 "}\n" in TEST_F()
889 "} // namespace nb\n" in TEST_F()
890 "} // namespace na\n"; in TEST_F()
892 std::string Expected = "namespace util {\n" in TEST_F()
893 "class Util {};\n" in TEST_F()
894 "void func() {}\n" in TEST_F()
895 "} // namespace util\n" in TEST_F()
896 "\n" in TEST_F()
897 "namespace x {\n" in TEST_F()
898 "namespace y {\n" in TEST_F()
899 "namespace {\n" in TEST_F()
900 "using ::util::Util;\n" in TEST_F()
901 "using ::util::func;\n" in TEST_F()
902 "void f() { Util u; func(); }\n" in TEST_F()
903 "}\n" in TEST_F()
904 "} // namespace y\n" in TEST_F()
905 "} // namespace x\n"; in TEST_F()
910 std::string Code = "namespace glob {\n" in TEST_F()
911 "class Glob {};\n" in TEST_F()
912 "}\n" in TEST_F()
913 "using namespace glob;\n" in TEST_F()
914 "namespace na {\n" in TEST_F()
915 "namespace nb {\n" in TEST_F()
916 "void f() { Glob g; }\n" in TEST_F()
917 "} // namespace nb\n" in TEST_F()
918 "} // namespace na\n"; in TEST_F()
920 std::string Expected = "namespace glob {\n" in TEST_F()
921 "class Glob {};\n" in TEST_F()
922 "}\n" in TEST_F()
923 "using namespace glob;\n" in TEST_F()
924 "\n" in TEST_F()
925 "namespace x {\n" in TEST_F()
926 "namespace y {\n" in TEST_F()
927 "void f() { Glob g; }\n" in TEST_F()
928 "} // namespace y\n" in TEST_F()
929 "} // namespace x\n"; in TEST_F()
934 std::string Code = "namespace glob {\n" in TEST_F()
935 "class Glob {};\n" in TEST_F()
936 "}\n" in TEST_F()
937 "namespace glob2 { class Glob2 {}; }\n" in TEST_F()
938 "namespace gl = glob;\n" in TEST_F()
939 "namespace gl2 = glob2;\n" in TEST_F()
940 "namespace na {\n" in TEST_F()
941 "namespace nb {\n" in TEST_F()
942 "void f() { gl::Glob g; gl2::Glob2 g2; }\n" in TEST_F()
943 "} // namespace nb\n" in TEST_F()
944 "} // namespace na\n"; in TEST_F()
947 "namespace glob {\n" in TEST_F()
948 "class Glob {};\n" in TEST_F()
949 "}\n" in TEST_F()
950 "namespace glob2 { class Glob2 {}; }\n" in TEST_F()
951 "namespace gl = glob;\n" in TEST_F()
952 "namespace gl2 = glob2;\n" in TEST_F()
953 "\n" in TEST_F()
954 "namespace x {\n" in TEST_F()
955 "namespace y {\n" in TEST_F()
956 "void f() { gl::Glob g; gl2::Glob2 g2; }\n" in TEST_F()
957 "} // namespace y\n" in TEST_F()
958 "} // namespace x\n"; in TEST_F()
963 std::string Code = "namespace glob {\n" in TEST_F()
964 "class Glob {};\n" in TEST_F()
965 "}\n" in TEST_F()
966 "namespace na {\n" in TEST_F()
967 "namespace nb {\n" in TEST_F()
968 "namespace gl = glob;\n" in TEST_F()
969 "void f() { gl::Glob g; }\n" in TEST_F()
970 "} // namespace nb\n" in TEST_F()
971 "} // namespace na\n"; in TEST_F()
973 std::string Expected = "namespace glob {\n" in TEST_F()
974 "class Glob {};\n" in TEST_F()
975 "}\n" in TEST_F()
976 "\n" in TEST_F()
977 "namespace x {\n" in TEST_F()
978 "namespace y {\n" in TEST_F()
979 "namespace gl = glob;\n" in TEST_F()
980 "void f() { gl::Glob g; }\n" in TEST_F()
981 "} // namespace y\n" in TEST_F()
982 "} // namespace x\n"; in TEST_F()
988 std::string Code = "namespace glob {\n" in TEST_F()
989 "class Glob {};\n" in TEST_F()
990 "}\n" in TEST_F()
991 "namespace other { namespace gl = glob; }\n" in TEST_F()
992 "namespace na {\n" in TEST_F()
993 "namespace ga = glob;\n" in TEST_F()
994 "namespace nb {\n" in TEST_F()
995 "void f() { ga::Glob g; }\n" in TEST_F()
996 "} // namespace nb\n" in TEST_F()
997 "} // namespace na\n"; in TEST_F()
999 std::string Expected = "namespace glob {\n" in TEST_F()
1000 "class Glob {};\n" in TEST_F()
1001 "}\n" in TEST_F()
1002 "namespace other { namespace gl = glob; }\n" in TEST_F()
1003 "namespace na {\n" in TEST_F()
1004 "namespace ga = glob;\n" in TEST_F()
1005 "\n" in TEST_F()
1006 "namespace nx {\n" in TEST_F()
1007 "void f() { ga::Glob g; }\n" in TEST_F()
1008 "} // namespace nx\n" in TEST_F()
1009 "} // namespace na\n"; in TEST_F()
1014 std::string Code = "namespace glob {\n" in TEST_F()
1015 "class Glob {};\n" in TEST_F()
1016 "}\n" in TEST_F()
1017 "namespace other { namespace gl = glob; }\n" in TEST_F()
1018 "namespace na {\n" in TEST_F()
1019 "namespace ga = glob;\n" in TEST_F()
1020 "namespace nb {\n" in TEST_F()
1021 "void f() { glob::Glob g; }\n" in TEST_F()
1022 "} // namespace nb\n" in TEST_F()
1023 "} // namespace na\n"; in TEST_F()
1025 std::string Expected = "namespace glob {\n" in TEST_F()
1026 "class Glob {};\n" in TEST_F()
1027 "}\n" in TEST_F()
1028 "namespace other { namespace gl = glob; }\n" in TEST_F()
1029 "namespace na {\n" in TEST_F()
1030 "namespace ga = glob;\n" in TEST_F()
1031 "\n" in TEST_F()
1032 "} // namespace na\n" in TEST_F()
1033 "namespace x {\n" in TEST_F()
1034 "namespace y {\n" in TEST_F()
1035 "void f() { glob::Glob g; }\n" in TEST_F()
1036 "} // namespace y\n" in TEST_F()
1037 "} // namespace x\n"; in TEST_F()
1042 std::string Code = "namespace glob {\n" in TEST_F()
1043 "class Glob {};\n" in TEST_F()
1044 "}\n" in TEST_F()
1045 "namespace na {\n" in TEST_F()
1046 "namespace nb {\n" in TEST_F()
1047 "void f() { glob::Glob g; }\n" in TEST_F()
1048 "} // namespace nb\n" in TEST_F()
1049 "} // namespace na\n" in TEST_F()
1050 "using glob::Glob;\n" in TEST_F()
1051 "using namespace glob;\n"; in TEST_F()
1053 std::string Expected = "namespace glob {\n" in TEST_F()
1054 "class Glob {};\n" in TEST_F()
1055 "}\n" in TEST_F()
1056 "\n" in TEST_F()
1057 "namespace x {\n" in TEST_F()
1058 "namespace y {\n" in TEST_F()
1059 "void f() { glob::Glob g; }\n" in TEST_F()
1060 "} // namespace y\n" in TEST_F()
1061 "} // namespace x\n" in TEST_F()
1062 "using glob::Glob;\n" in TEST_F()
1063 "using namespace glob;\n"; in TEST_F()
1069 std::string Code = "namespace glob {\n" in TEST_F()
1070 "class Glob {};\n" in TEST_F()
1071 "}\n" in TEST_F()
1072 "namespace na {\n" in TEST_F()
1073 "namespace nb {\n" in TEST_F()
1074 "void f() { glob::Glob g; }\n" in TEST_F()
1075 "} // namespace nb\n" in TEST_F()
1076 "using namespace glob;\n" in TEST_F()
1077 "} // namespace na\n"; in TEST_F()
1079 std::string Expected = "namespace glob {\n" in TEST_F()
1080 "class Glob {};\n" in TEST_F()
1081 "}\n" in TEST_F()
1082 "namespace na {\n" in TEST_F()
1083 "\n" in TEST_F()
1084 "namespace nc {\n" in TEST_F()
1085 "void f() { glob::Glob g; }\n" in TEST_F()
1086 "} // namespace nc\n" in TEST_F()
1087 "using namespace glob;\n" in TEST_F()
1088 "} // namespace na\n"; in TEST_F()
1093 std::string Code = "namespace glob1 {\n" in TEST_F()
1094 "namespace glob2 {\n" in TEST_F()
1095 "class Glob {};\n" in TEST_F()
1096 "}\n" in TEST_F()
1097 "}\n" in TEST_F()
1098 "using glob1::glob2::Glob;\n" in TEST_F()
1099 "using namespace glob1;\n" in TEST_F()
1100 "namespace na {\n" in TEST_F()
1101 "namespace nb {\n" in TEST_F()
1102 "void f() { Glob g; }\n" in TEST_F()
1103 "} // namespace nb\n" in TEST_F()
1104 "} // namespace na\n"; in TEST_F()
1106 std::string Expected = "namespace glob1 {\n" in TEST_F()
1107 "namespace glob2 {\n" in TEST_F()
1108 "class Glob {};\n" in TEST_F()
1109 "}\n" in TEST_F()
1110 "}\n" in TEST_F()
1111 "using glob1::glob2::Glob;\n" in TEST_F()
1112 "using namespace glob1;\n" in TEST_F()
1113 "\n" in TEST_F()
1114 "namespace x {\n" in TEST_F()
1115 "namespace y {\n" in TEST_F()
1116 "void f() { Glob g; }\n" in TEST_F()
1117 "} // namespace y\n" in TEST_F()
1118 "} // namespace x\n"; in TEST_F()
1123 std::string Code = "namespace glob {\n" in TEST_F()
1124 "class Glob {};\n" in TEST_F()
1125 "}\n" in TEST_F()
1126 "using GLB = glob::Glob;\n" in TEST_F()
1127 "using BLG = glob::Glob;\n" in TEST_F()
1128 "namespace na {\n" in TEST_F()
1129 "namespace nb {\n" in TEST_F()
1130 "void f() { GLB g; BLG blg; }\n" in TEST_F()
1131 "} // namespace nb\n" in TEST_F()
1132 "} // namespace na\n"; in TEST_F()
1134 std::string Expected = "namespace glob {\n" in TEST_F()
1135 "class Glob {};\n" in TEST_F()
1136 "}\n" in TEST_F()
1137 "using GLB = glob::Glob;\n" in TEST_F()
1138 "using BLG = glob::Glob;\n" in TEST_F()
1139 "\n" in TEST_F()
1140 "namespace x {\n" in TEST_F()
1141 "namespace y {\n" in TEST_F()
1142 "void f() { GLB g; BLG blg; }\n" in TEST_F()
1143 "} // namespace y\n" in TEST_F()
1144 "} // namespace x\n"; in TEST_F()
1149 std::string Code = "namespace na { class C_A {};\n }\n" in TEST_F()
1150 "using na::C_A;\n" in TEST_F()
1151 "namespace na {\n" in TEST_F()
1152 "namespace nb {\n" in TEST_F()
1153 "class C_X {\n" in TEST_F()
1154 "public:\n" in TEST_F()
1155 " C_A a;\n" in TEST_F()
1156 "};\n" in TEST_F()
1157 "} // namespace nb\n" in TEST_F()
1158 "} // namespace na\n"; in TEST_F()
1159 std::string Expected = "namespace na { class C_A {};\n }\n" in TEST_F()
1160 "using na::C_A;\n" in TEST_F()
1161 "\n" in TEST_F()
1162 "namespace x {\n" in TEST_F()
1163 "namespace y {\n" in TEST_F()
1164 "class C_X {\n" in TEST_F()
1165 "public:\n" in TEST_F()
1166 " C_A a;\n" in TEST_F()
1167 "};\n" in TEST_F()
1168 "} // namespace y\n" in TEST_F()
1169 "} // namespace x\n"; in TEST_F()
1174 std::string Code = "namespace na { class C_A {};\n }\n" in TEST_F()
1175 "using namespace na;\n" in TEST_F()
1176 "namespace na {\n" in TEST_F()
1177 "namespace nb {\n" in TEST_F()
1178 "class C_X {\n" in TEST_F()
1179 "public:\n" in TEST_F()
1180 " C_A ca;\n" in TEST_F()
1181 "};\n" in TEST_F()
1182 "} // namespace nb\n" in TEST_F()
1183 "} // namespace na\n"; in TEST_F()
1184 std::string Expected = "namespace na { class C_A {};\n }\n" in TEST_F()
1185 "using namespace na;\n" in TEST_F()
1186 "\n" in TEST_F()
1187 "namespace x {\n" in TEST_F()
1188 "namespace y {\n" in TEST_F()
1189 "class C_X {\n" in TEST_F()
1190 "public:\n" in TEST_F()
1191 " C_A ca;\n" in TEST_F()
1192 "};\n" in TEST_F()
1193 "} // namespace y\n" in TEST_F()
1194 "} // namespace x\n"; in TEST_F()
1199 std::string Code = "namespace glob {\n" in TEST_F()
1200 "class Glob {};\n" in TEST_F()
1201 "}\n" in TEST_F()
1202 "namespace na {\n" in TEST_F()
1203 "namespace nb {\n" in TEST_F()
1204 "void f() {\n" in TEST_F()
1205 " using glob::Glob;\n" in TEST_F()
1206 " Glob g;\n" in TEST_F()
1207 "}\n" in TEST_F()
1208 "} // namespace nb\n" in TEST_F()
1209 "} // namespace na\n"; in TEST_F()
1211 std::string Expected = "namespace glob {\n" in TEST_F()
1212 "class Glob {};\n" in TEST_F()
1213 "}\n" in TEST_F()
1214 "\n" in TEST_F()
1215 "namespace x {\n" in TEST_F()
1216 "namespace y {\n" in TEST_F()
1217 "void f() {\n" in TEST_F()
1218 " using ::glob::Glob;\n" in TEST_F()
1219 " Glob g;\n" in TEST_F()
1220 "}\n" in TEST_F()
1221 "} // namespace y\n" in TEST_F()
1222 "} // namespace x\n"; in TEST_F()
1227 std::string Code = "namespace na { class C_A {}; }\n" in TEST_F()
1228 "namespace na {\n" in TEST_F()
1229 "namespace nb {\n" in TEST_F()
1230 "void f() {\n" in TEST_F()
1231 " using ::na::C_A;\n" in TEST_F()
1232 " C_A ca;\n" in TEST_F()
1233 "}\n" in TEST_F()
1234 "} // namespace nb\n" in TEST_F()
1235 "} // namespace na\n"; in TEST_F()
1236 std::string Expected = "namespace na { class C_A {}; }\n" in TEST_F()
1237 "\n" in TEST_F()
1238 "namespace x {\n" in TEST_F()
1239 "namespace y {\n" in TEST_F()
1240 "void f() {\n" in TEST_F()
1241 " using ::na::C_A;\n" in TEST_F()
1242 " C_A ca;\n" in TEST_F()
1243 "}\n" in TEST_F()
1244 "} // namespace y\n" in TEST_F()
1245 "} // namespace x\n"; in TEST_F()
1250 std::string Code = "namespace nx { void f(); }\n" in TEST_F()
1251 "namespace na {\n" in TEST_F()
1252 "using nx::f;\n" in TEST_F()
1253 "namespace nb {\n" in TEST_F()
1254 "void d() { f(); }\n" in TEST_F()
1255 "} // nb\n" in TEST_F()
1256 "} // na\n"; in TEST_F()
1258 std::string Expected = "namespace nx { void f(); }\n" in TEST_F()
1259 "namespace na {\n" in TEST_F()
1260 "using nx::f;\n" in TEST_F()
1261 "\n" in TEST_F()
1262 "} // na\n" in TEST_F()
1263 "namespace x {\n" in TEST_F()
1264 "namespace y {\n" in TEST_F()
1265 "void d() { nx::f(); }\n" in TEST_F()
1266 "} // namespace y\n" in TEST_F()
1267 "} // namespace x\n"; in TEST_F()
1273 std::string Code = "namespace nx { void f(); }\n" in TEST_F()
1274 "namespace na {\n" in TEST_F()
1275 "using ::nx::f;\n" in TEST_F()
1276 "void d() { f(); }\n" in TEST_F()
1277 "} // na\n"; in TEST_F()
1279 std::string Expected = "namespace nx { void f(); }\n" in TEST_F()
1280 "\n" in TEST_F()
1281 "namespace x {\n" in TEST_F()
1282 "namespace y {\n" in TEST_F()
1283 "using ::nx::f;\n" in TEST_F()
1284 "void d() { f(); }\n" in TEST_F()
1285 "} // namespace y\n" in TEST_F()
1286 "} // namespace x\n"; in TEST_F()
1293 std::string Code = "namespace nx { void f(); void g(); }\n" in TEST_F()
1294 "namespace a {\n" in TEST_F()
1295 "namespace b {\n" in TEST_F()
1296 "using ::nx::f;\n" in TEST_F()
1297 "namespace c {\n" in TEST_F()
1298 "using ::nx::g;\n" in TEST_F()
1299 "namespace d {\n" in TEST_F()
1300 "void d() { f(); g(); }\n" in TEST_F()
1301 "} // d\n" in TEST_F()
1302 "} // c\n" in TEST_F()
1303 "} // b\n" in TEST_F()
1304 "} // a\n"; in TEST_F()
1306 std::string Expected = "namespace nx { void f(); void g(); }\n" in TEST_F()
1307 "namespace a {\n" in TEST_F()
1308 "namespace b {\n" in TEST_F()
1309 "using ::nx::f;\n" in TEST_F()
1310 "namespace c {\n" in TEST_F()
1311 "using ::nx::g;\n" in TEST_F()
1312 "\n" in TEST_F()
1313 "} // c\n" in TEST_F()
1314 "namespace x {\n" in TEST_F()
1315 "namespace y {\n" in TEST_F()
1316 "void d() { f(); nx::g(); }\n" in TEST_F()
1317 "} // namespace y\n" in TEST_F()
1318 "} // namespace x\n" in TEST_F()
1319 "} // b\n" in TEST_F()
1320 "} // a\n"; in TEST_F()
1327 std::string Code = "namespace na { class A {}; }\n" in TEST_F()
1328 "namespace nb {\n" in TEST_F()
1329 "using na::A;\n" in TEST_F()
1330 "namespace nc {\n" in TEST_F()
1331 "void d() { A a; }\n" in TEST_F()
1332 "} // nc\n" in TEST_F()
1333 "} // nb\n"; in TEST_F()
1335 std::string Expected = "namespace na { class A {}; }\n" in TEST_F()
1336 "namespace nb {\n" in TEST_F()
1337 "using na::A;\n" in TEST_F()
1338 "\n" in TEST_F()
1339 "namespace nd {\n" in TEST_F()
1340 "void d() { A a; }\n" in TEST_F()
1341 "} // namespace nd\n" in TEST_F()
1342 "} // nb\n"; in TEST_F()
1349 std::string Code = "namespace na { class A {}; }\n" in TEST_F()
1350 "namespace nb {\n" in TEST_F()
1351 "using na::A;\n" in TEST_F()
1352 "void d() { A a; }\n" in TEST_F()
1353 "struct X { A a; };\n" in TEST_F()
1354 "} // nb\n"; in TEST_F()
1356 std::string Expected = "namespace na { class A {}; }\n" in TEST_F()
1357 "\n" in TEST_F()
1358 "namespace nc {\n" in TEST_F()
1359 "using ::na::A;\n" in TEST_F()
1360 "void d() { A a; }\n" in TEST_F()
1361 "struct X { A a; };\n" in TEST_F()
1362 "} // namespace nc\n"; in TEST_F()
1369 std::string Code = "namespace na {\n" in TEST_F()
1370 "template <typename T>\n" in TEST_F()
1371 "class A { T t; };\n" in TEST_F()
1372 "} // namespace na\n" in TEST_F()
1373 "namespace nb {\n" in TEST_F()
1374 "using na::A;\n" in TEST_F()
1375 "void d() { A<int> a; }\n" in TEST_F()
1376 "} // nb\n"; in TEST_F()
1378 std::string Expected = "namespace na {\n" in TEST_F()
1379 "template <typename T>\n" in TEST_F()
1380 "class A { T t; };\n" in TEST_F()
1381 "} // namespace na\n" in TEST_F()
1382 "\n" in TEST_F()
1383 "namespace nc {\n" in TEST_F()
1384 "using ::na::A;\n" in TEST_F()
1385 "void d() { A<int> a; }\n" in TEST_F()
1386 "} // namespace nc\n"; in TEST_F()
1393 std::string Code = "namespace na {\n" in TEST_F()
1394 "template <typename T>\n" in TEST_F()
1395 "void f() { T t; };\n" in TEST_F()
1396 "} // namespace na\n" in TEST_F()
1397 "namespace nb {\n" in TEST_F()
1398 "using na::f;\n" in TEST_F()
1399 "void d() { f<int>(); }\n" in TEST_F()
1400 "} // nb\n"; in TEST_F()
1402 std::string Expected = "namespace na {\n" in TEST_F()
1403 "template <typename T>\n" in TEST_F()
1404 "void f() { T t; };\n" in TEST_F()
1405 "} // namespace na\n" in TEST_F()
1406 "\n" in TEST_F()
1407 "namespace nc {\n" in TEST_F()
1408 "using ::na::f;\n" in TEST_F()
1409 "void d() { f<int>(); }\n" in TEST_F()
1410 "} // namespace nc\n"; in TEST_F()
1416 "namespace nx { namespace ny { class X {}; } }\n" in TEST_F()
1417 "namespace na {\n" in TEST_F()
1418 "namespace nb {\n" in TEST_F()
1419 "using Y = nx::ny::X;\n" in TEST_F()
1420 "void f() { Y y; }\n" in TEST_F()
1421 "} // namespace nb\n" in TEST_F()
1422 "} // namespace na\n"; in TEST_F()
1424 std::string Expected = "namespace nx { namespace ny { class X {}; } }\n" in TEST_F()
1425 "\n" in TEST_F()
1426 "namespace x {\n" in TEST_F()
1427 "namespace y {\n" in TEST_F()
1428 "using Y = nx::ny::X;\n" in TEST_F()
1429 "void f() { Y y; }\n" in TEST_F()
1430 "} // namespace y\n" in TEST_F()
1431 "} // namespace x\n"; in TEST_F()
1437 "namespace nx { namespace ny { class X {}; } }\n" in TEST_F()
1438 "using Y = nx::ny::X;\n" in TEST_F()
1439 "namespace na {\n" in TEST_F()
1440 "namespace nb {\n" in TEST_F()
1441 "void f() { Y y; }\n" in TEST_F()
1442 "} // namespace nb\n" in TEST_F()
1443 "} // namespace na\n"; in TEST_F()
1445 std::string Expected = "namespace nx { namespace ny { class X {}; } }\n" in TEST_F()
1446 "using Y = nx::ny::X;\n" in TEST_F()
1447 "\n" in TEST_F()
1448 "namespace x {\n" in TEST_F()
1449 "namespace y {\n" in TEST_F()
1450 "void f() { Y y; }\n" in TEST_F()
1451 "} // namespace y\n" in TEST_F()
1452 "} // namespace x\n"; in TEST_F()
1459 "namespace nx { namespace ny { class X {}; } }\n" in TEST_F()
1460 "namespace na {\n" in TEST_F()
1461 "namespace nb {\n" in TEST_F()
1462 "typedef nx::ny::X Y;\n" in TEST_F()
1463 "void f() { Y y; }\n" in TEST_F()
1464 "} // namespace nb\n" in TEST_F()
1465 "} // namespace na\n"; in TEST_F()
1467 std::string Expected = "namespace nx { namespace ny { class X {}; } }\n" in TEST_F()
1468 "\n" in TEST_F()
1469 "namespace x {\n" in TEST_F()
1470 "namespace y {\n" in TEST_F()
1471 "typedef nx::ny::X Y;\n" in TEST_F()
1472 "void f() { Y y; }\n" in TEST_F()
1473 "} // namespace y\n" in TEST_F()
1474 "} // namespace x\n"; in TEST_F()
1480 "namespace nx { namespace ny { class X { public: X(int i) {} }; } }\n" in TEST_F()
1481 "namespace na {\n" in TEST_F()
1482 "namespace nb {\n" in TEST_F()
1483 "class A : public nx::ny::X {\n" in TEST_F()
1484 "public:\n" in TEST_F()
1485 " A() : X(0) {}\n" in TEST_F()
1486 " A(int i);\n" in TEST_F()
1487 "};\n" in TEST_F()
1488 "A::A(int i) : X(i) {}\n" in TEST_F()
1489 "} // namespace nb\n" in TEST_F()
1490 "} // namespace na\n"; in TEST_F()
1492 "namespace nx { namespace ny { class X { public: X(int i) {} }; } }\n" in TEST_F()
1493 "\n\n" in TEST_F()
1494 "namespace x {\n" in TEST_F()
1495 "namespace y {\n" in TEST_F()
1496 "class A : public nx::ny::X {\n" in TEST_F()
1497 "public:\n" in TEST_F()
1498 " A() : X(0) {}\n" in TEST_F()
1499 " A(int i);\n" in TEST_F()
1500 "};\n" in TEST_F()
1501 "A::A(int i) : X(i) {}\n" in TEST_F()
1502 "} // namespace y\n" in TEST_F()
1503 "} // namespace x\n"; in TEST_F()
1509 "namespace nx { namespace ny { class X { public: X(int i) {} }; } }\n" in TEST_F()
1510 "namespace na {\n" in TEST_F()
1511 "namespace nb {\n" in TEST_F()
1512 "class A : public nx::ny::X {\n" in TEST_F()
1513 "public:\n" in TEST_F()
1514 " A() : X::X(0) {}\n" in TEST_F()
1515 " A(int i);\n" in TEST_F()
1516 "};\n" in TEST_F()
1517 "A::A(int i) : X::X(i) {}\n" in TEST_F()
1518 "} // namespace nb\n" in TEST_F()
1519 "} // namespace na\n"; in TEST_F()
1521 "namespace nx { namespace ny { class X { public: X(int i) {} }; } }\n" in TEST_F()
1522 "\n\n" in TEST_F()
1523 "namespace x {\n" in TEST_F()
1524 "namespace y {\n" in TEST_F()
1525 "class A : public nx::ny::X {\n" in TEST_F()
1526 "public:\n" in TEST_F()
1527 " A() : X::X(0) {}\n" in TEST_F()
1528 " A(int i);\n" in TEST_F()
1529 "};\n" in TEST_F()
1530 "A::A(int i) : X::X(i) {}\n" in TEST_F()
1531 "} // namespace y\n" in TEST_F()
1532 "} // namespace x\n"; in TEST_F()
1538 "namespace nx { namespace ny { class X { public: X(int i) {} }; } }\n" in TEST_F()
1539 "namespace na {\n" in TEST_F()
1540 "namespace nb {\n" in TEST_F()
1541 "class A : public nx::ny::X {\n" in TEST_F()
1542 "public:\n" in TEST_F()
1543 " A() : X(0) {}\n" in TEST_F()
1544 " A(int i);\n" in TEST_F()
1545 "};\n" in TEST_F()
1546 "A::A(int i) : X(i) { X x(1);}\n" in TEST_F()
1547 "} // namespace nb\n" in TEST_F()
1548 "} // namespace na\n"; in TEST_F()
1550 "namespace nx { namespace ny { class X { public: X(int i) {} }; } }\n" in TEST_F()
1551 "\n\n" in TEST_F()
1552 "namespace x {\n" in TEST_F()
1553 "namespace y {\n" in TEST_F()
1554 "class A : public nx::ny::X {\n" in TEST_F()
1555 "public:\n" in TEST_F()
1556 " A() : X(0) {}\n" in TEST_F()
1557 " A(int i);\n" in TEST_F()
1558 "};\n" in TEST_F()
1559 "A::A(int i) : X(i) { nx::ny::X x(1);}\n" in TEST_F()
1560 "} // namespace y\n" in TEST_F()
1561 "} // namespace x\n"; in TEST_F()
1567 std::string Code = "namespace na {\n" in TEST_F()
1568 "class C_A {};\n" in TEST_F()
1569 "namespace nc {\n" in TEST_F()
1571 "} // namespace nc\n" in TEST_F()
1572 "namespace nb {\n" in TEST_F()
1573 "class C_X {\n" in TEST_F()
1574 "public:\n" in TEST_F()
1575 " C_A a;\n" in TEST_F()
1576 " nc::C_C c;\n" in TEST_F()
1577 "};\n" in TEST_F()
1578 "class C_Y {\n" in TEST_F()
1579 " C_X x;\n" in TEST_F()
1580 "};\n" in TEST_F()
1581 "} // namespace nb\n" in TEST_F()
1582 "} // namespace na\n"; in TEST_F()
1583 std::string Expected = "namespace na {\n" in TEST_F()
1584 "class C_A {};\n" in TEST_F()
1585 "namespace nc {\n" in TEST_F()
1587 "} // namespace nc\n" in TEST_F()
1588 "\n" in TEST_F()
1589 "} // namespace na\n" in TEST_F()
1590 "class C_X {\n" in TEST_F()
1591 "public:\n" in TEST_F()
1592 " na::C_A a;\n" in TEST_F()
1593 " na::nc::C_C c;\n" in TEST_F()
1594 "};\n" in TEST_F()
1595 "class C_Y {\n" in TEST_F()
1596 " C_X x;\n" in TEST_F()
1597 "};\n"; in TEST_F()
1602 std::string Code = "class Glob {};\n" in TEST_F()
1603 "namespace na {\n" in TEST_F()
1604 "class C_A {};\n" in TEST_F()
1605 "namespace nc {\n" in TEST_F()
1607 "} // namespace nc\n" in TEST_F()
1608 "namespace nb {\n" in TEST_F()
1609 "class C_X {\n" in TEST_F()
1610 "public:\n" in TEST_F()
1611 " ::Glob glob_1;\n" in TEST_F()
1612 " Glob glob_2;\n" in TEST_F()
1613 " C_A a_1;\n" in TEST_F()
1614 " ::na::C_A a_2;\n" in TEST_F()
1615 " nc::C_C c;\n" in TEST_F()
1616 "};\n" in TEST_F()
1617 "} // namespace nb\n" in TEST_F()
1618 "} // namespace na\n"; in TEST_F()
1619 std::string Expected = "class Glob {};\n" in TEST_F()
1620 "namespace na {\n" in TEST_F()
1621 "class C_A {};\n" in TEST_F()
1622 "namespace nc {\n" in TEST_F()
1624 "} // namespace nc\n" in TEST_F()
1625 "\n" in TEST_F()
1626 "} // namespace na\n" in TEST_F()
1627 "namespace x {\n" in TEST_F()
1628 "namespace y {\n" in TEST_F()
1629 "class C_X {\n" in TEST_F()
1630 "public:\n" in TEST_F()
1631 " ::Glob glob_1;\n" in TEST_F()
1632 " Glob glob_2;\n" in TEST_F()
1633 " na::C_A a_1;\n" in TEST_F()
1634 " ::na::C_A a_2;\n" in TEST_F()
1635 " na::nc::C_C c;\n" in TEST_F()
1636 "};\n" in TEST_F()
1637 "} // namespace y\n" in TEST_F()
1638 "} // namespace x\n"; in TEST_F()
1644 std::string Code = "namespace some_ns {\n" in TEST_F()
1645 "template <typename T, typename S>\n" in TEST_F()
1646 "class G {};\n" in TEST_F()
1647 "} // namespace some_ns\n" in TEST_F()
1648 "namespace na {\n" in TEST_F()
1649 "template<typename P>\n" in TEST_F()
1650 "using GG = some_ns::G<int, P>;\n" in TEST_F()
1651 "} // namespace na\n" in TEST_F()
1652 "namespace na {\n" in TEST_F()
1653 "namespace nb {\n" in TEST_F()
1654 "void f() {\n" in TEST_F()
1655 " GG<float> g;\n" in TEST_F()
1656 "}\n" in TEST_F()
1657 "} // namespace nb\n" in TEST_F()
1658 "} // namespace na\n"; in TEST_F()
1659 std::string Expected = "namespace some_ns {\n" in TEST_F()
1660 "template <typename T, typename S>\n" in TEST_F()
1661 "class G {};\n" in TEST_F()
1662 "} // namespace some_ns\n" in TEST_F()
1663 "namespace na {\n" in TEST_F()
1664 "template<typename P>\n" in TEST_F()
1665 "using GG = some_ns::G<int, P>;\n" in TEST_F()
1666 "} // namespace na\n" in TEST_F()
1667 "namespace na {\n" in TEST_F()
1668 "namespace nb {\n" in TEST_F()
1669 "namespace nc {\n" in TEST_F()
1670 "void f() {\n" in TEST_F()
1671 " GG<float> g;\n" in TEST_F()
1672 "}\n" in TEST_F()
1673 "} // namespace nc\n" in TEST_F()
1674 "} // namespace nb\n" in TEST_F()
1675 "} // namespace na\n"; in TEST_F()
1681 std::string Code = "namespace some_ns {\n" in TEST_F()
1682 "template <typename T, typename S>\n" in TEST_F()
1683 "class G {};\n" in TEST_F()
1684 "} // namespace some_ns\n" in TEST_F()
1685 "namespace na {\n" in TEST_F()
1686 "class Base {\n" in TEST_F()
1687 "public:\n" in TEST_F()
1688 " template<typename P>\n" in TEST_F()
1689 " using GG = some_ns::G<int, P>;\n" in TEST_F()
1690 "\n" in TEST_F()
1691 " struct Nested {};\n" in TEST_F()
1692 "};\n" in TEST_F()
1693 "class Derived : public Base {};\n" in TEST_F()
1694 "} // namespace na\n" in TEST_F()
1695 "namespace na {\n" in TEST_F()
1696 "namespace nb {\n" in TEST_F()
1697 "void f() {\n" in TEST_F()
1698 " Derived::GG<float> g;\n" in TEST_F()
1699 " const Derived::GG<int> gg;\n" in TEST_F()
1700 " const Derived::GG<int>* gg_ptr;\n" in TEST_F()
1701 " struct Derived::Nested nested;\n" in TEST_F()
1702 " const struct Derived::Nested *nested_ptr;\n" in TEST_F()
1703 "}\n" in TEST_F()
1704 "} // namespace nb\n" in TEST_F()
1705 "} // namespace na\n"; in TEST_F()
1706 std::string Expected = "namespace some_ns {\n" in TEST_F()
1707 "template <typename T, typename S>\n" in TEST_F()
1708 "class G {};\n" in TEST_F()
1709 "} // namespace some_ns\n" in TEST_F()
1710 "namespace na {\n" in TEST_F()
1711 "class Base {\n" in TEST_F()
1712 "public:\n" in TEST_F()
1713 " template<typename P>\n" in TEST_F()
1714 " using GG = some_ns::G<int, P>;\n" in TEST_F()
1715 "\n" in TEST_F()
1716 " struct Nested {};\n" in TEST_F()
1717 "};\n" in TEST_F()
1718 "class Derived : public Base {};\n" in TEST_F()
1719 "} // namespace na\n" in TEST_F()
1720 "namespace na {\n" in TEST_F()
1721 "namespace nb {\n" in TEST_F()
1722 "namespace nc {\n" in TEST_F()
1723 "void f() {\n" in TEST_F()
1724 " Derived::GG<float> g;\n" in TEST_F()
1725 " const Derived::GG<int> gg;\n" in TEST_F()
1726 " const Derived::GG<int>* gg_ptr;\n" in TEST_F()
1727 " struct Derived::Nested nested;\n" in TEST_F()
1728 " const struct Derived::Nested *nested_ptr;\n" in TEST_F()
1729 "}\n" in TEST_F()
1730 "} // namespace nc\n" in TEST_F()
1731 "} // namespace nb\n" in TEST_F()
1732 "} // namespace na\n"; in TEST_F()
1739 std::string Code = "namespace na {\n" in TEST_F()
1740 "class A {};\n" in TEST_F()
1741 "} // namespace na\n" in TEST_F()
1742 "namespace nb {\n" in TEST_F()
1743 "class B {};\n" in TEST_F()
1744 "} // namespace nb\n" in TEST_F()
1745 "namespace nx {\n" in TEST_F()
1746 "class X {\n" in TEST_F()
1747 " na::A a; nb::B b;\n" in TEST_F()
1748 "};\n" in TEST_F()
1749 "} // namespace nx\n"; in TEST_F()
1750 std::string Expected = "namespace na {\n" in TEST_F()
1751 "class A {};\n" in TEST_F()
1752 "} // namespace na\n" in TEST_F()
1753 "namespace nb {\n" in TEST_F()
1754 "class B {};\n" in TEST_F()
1755 "} // namespace nb\n" in TEST_F()
1756 "\n" in TEST_F()
1757 "namespace ny {\n" in TEST_F()
1758 "namespace na {\n" in TEST_F()
1759 "namespace nc {\n" in TEST_F()
1760 "class X {\n" in TEST_F()
1761 " ::na::A a; nb::B b;\n" in TEST_F()
1762 "};\n" in TEST_F()
1763 "} // namespace nc\n" in TEST_F()
1764 "} // namespace na\n" in TEST_F()
1765 "} // namespace ny\n"; in TEST_F()
1772 std::string Code = "namespace na {\n" in TEST_F()
1773 "class A {};\n" in TEST_F()
1774 "namespace nb {\n" in TEST_F()
1775 "class B {};\n" in TEST_F()
1776 "} // namespace nb\n" in TEST_F()
1777 "} // namespace na\n" in TEST_F()
1778 "namespace ny {\n" in TEST_F()
1779 "class Y {};\n" in TEST_F()
1780 "}\n" in TEST_F()
1781 "namespace nx {\n" in TEST_F()
1782 "class X {\n" in TEST_F()
1783 " na::A a; na::nb::B b;\n" in TEST_F()
1785 "};\n" in TEST_F()
1786 "} // namespace nx\n"; in TEST_F()
1787 std::string Expected = "namespace na {\n" in TEST_F()
1788 "class A {};\n" in TEST_F()
1789 "namespace nb {\n" in TEST_F()
1790 "class B {};\n" in TEST_F()
1791 "} // namespace nb\n" in TEST_F()
1792 "} // namespace na\n" in TEST_F()
1793 "namespace ny {\n" in TEST_F()
1794 "class Y {};\n" in TEST_F()
1795 "}\n" in TEST_F()
1796 "\n" in TEST_F()
1797 "namespace ny {\n" in TEST_F()
1798 "namespace na {\n" in TEST_F()
1799 "namespace nc {\n" in TEST_F()
1800 "class X {\n" in TEST_F()
1801 " ::na::A a; ::na::nb::B b;\n" in TEST_F()
1802 " Y y;\n" in TEST_F()
1803 "};\n" in TEST_F()
1804 "} // namespace nc\n" in TEST_F()
1805 "} // namespace na\n" in TEST_F()
1806 "} // namespace ny\n"; in TEST_F()
1813 std::string Code = "class G {};\n" in TEST_F()
1814 "namespace ny {\n" in TEST_F()
1815 "class Y {};\n" in TEST_F()
1816 "namespace na {\n" in TEST_F()
1817 "class A {};\n" in TEST_F()
1818 "namespace nc { class C {}; } // namespace nc\n" in TEST_F()
1819 "}\n // namespace na\n" in TEST_F()
1820 "}\n // namespace ny\n" in TEST_F()
1821 "namespace nx {\n" in TEST_F()
1822 "class X {\n" in TEST_F()
1823 " G g; ny::Y y; ny::na::A a; ny::na::nc::C c;\n" in TEST_F()
1824 "};\n" in TEST_F()
1825 "} // namespace nx\n"; in TEST_F()
1826 std::string Expected = "class G {};\n" in TEST_F()
1827 "namespace ny {\n" in TEST_F()
1828 "class Y {};\n" in TEST_F()
1829 "namespace na {\n" in TEST_F()
1830 "class A {};\n" in TEST_F()
1831 "namespace nc { class C {}; } // namespace nc\n" in TEST_F()
1832 "}\n // namespace na\n" in TEST_F()
1833 "}\n // namespace ny\n" in TEST_F()
1834 "\n" in TEST_F()
1835 "namespace ny {\n" in TEST_F()
1836 "namespace na {\n" in TEST_F()
1837 "class X {\n" in TEST_F()
1838 " G g; Y y; A a; nc::C c;\n" in TEST_F()
1839 "};\n" in TEST_F()
1840 "} // namespace na\n" in TEST_F()
1841 "} // namespace ny\n"; in TEST_F()
1848 std::string Code = "class G {};\n" in TEST_F()
1849 "namespace ny {\n" in TEST_F()
1850 "class Y {};\n" in TEST_F()
1851 "namespace na {\n" in TEST_F()
1852 "class A {};\n" in TEST_F()
1853 "namespace nc { class C {}; } // namespace nc\n" in TEST_F()
1854 "}\n // namespace na\n" in TEST_F()
1855 "}\n // namespace ny\n" in TEST_F()
1856 "namespace nx {\n" in TEST_F()
1857 "namespace {\n" in TEST_F()
1858 "class X {\n" in TEST_F()
1859 " G g; ::ny::Y y; ::ny::na::A a; ::ny::na::nc::C c;\n" in TEST_F()
1860 "};\n" in TEST_F()
1861 "} // namespace\n" in TEST_F()
1862 "} // namespace nx\n"; in TEST_F()
1863 std::string Expected = "class G {};\n" in TEST_F()
1864 "namespace ny {\n" in TEST_F()
1865 "class Y {};\n" in TEST_F()
1866 "namespace na {\n" in TEST_F()
1867 "class A {};\n" in TEST_F()
1868 "namespace nc { class C {}; } // namespace nc\n" in TEST_F()
1869 "}\n // namespace na\n" in TEST_F()
1870 "}\n // namespace ny\n" in TEST_F()
1871 "\n" in TEST_F()
1872 "namespace ny {\n" in TEST_F()
1873 "namespace na {\n" in TEST_F()
1874 "namespace {\n" in TEST_F()
1875 "class X {\n" in TEST_F()
1876 " G g; Y y; A a; nc::C c;\n" in TEST_F()
1877 "};\n" in TEST_F()
1878 "} // namespace\n" in TEST_F()
1879 "} // namespace na\n" in TEST_F()
1880 "} // namespace ny\n"; in TEST_F()
1885 std::string Code = "namespace na {\n" in TEST_F()
1886 "namespace nb {\n" in TEST_F()
1887 "enum class X { X1, X2 };\n" in TEST_F()
1888 "enum Y { Y1, Y2 };\n" in TEST_F()
1889 "} // namespace nb\n" in TEST_F()
1890 "} // namespace na\n"; in TEST_F()
1891 std::string Expected = "\n\nnamespace x {\n" in TEST_F()
1892 "namespace y {\n" in TEST_F()
1893 "enum class X { X1, X2 };\n" in TEST_F()
1894 "enum Y { Y1, Y2 };\n" in TEST_F()
1895 "} // namespace y\n" in TEST_F()
1896 "} // namespace x\n"; in TEST_F()
1902 std::string Code = "enum Glob { G1, G2 };\n" in TEST_F()
1903 "namespace na {\n" in TEST_F()
1904 "enum class X { X1 };\n" in TEST_F()
1905 "enum Y { Y1, Y2 };\n" in TEST_F()
1906 "namespace nb {\n" in TEST_F()
1907 "void f() {\n" in TEST_F()
1908 " Glob g1 = Glob::G1;\n" in TEST_F()
1909 " Glob g2 = G2;\n" in TEST_F()
1910 " X x1 = X::X1;\n" in TEST_F()
1911 " Y y1 = Y::Y1;\n" in TEST_F()
1912 " Y y2 = Y2;\n" in TEST_F()
1913 "}\n" in TEST_F()
1914 "} // namespace nb\n" in TEST_F()
1915 "} // namespace na\n"; in TEST_F()
1916 std::string Expected = "enum Glob { G1, G2 };\n" in TEST_F()
1917 "namespace na {\n" in TEST_F()
1918 "enum class X { X1 };\n" in TEST_F()
1919 "enum Y { Y1, Y2 };\n" in TEST_F()
1920 "\n" in TEST_F()
1921 "} // namespace na\n" in TEST_F()
1922 "namespace x {\n" in TEST_F()
1923 "namespace y {\n" in TEST_F()
1924 "void f() {\n" in TEST_F()
1925 " Glob g1 = Glob::G1;\n" in TEST_F()
1926 " Glob g2 = G2;\n" in TEST_F()
1927 " na::X x1 = na::X::X1;\n" in TEST_F()
1928 " na::Y y1 = na::Y::Y1;\n" in TEST_F()
1929 " na::Y y2 = na::Y2;\n" in TEST_F()
1930 "}\n" in TEST_F()
1931 "} // namespace y\n" in TEST_F()
1932 "} // namespace x\n"; in TEST_F()
1938 std::string Code = "namespace ns {\n" in TEST_F()
1939 "enum class X { X1 };\n" in TEST_F()
1940 "enum Y { Y1, Y2 };\n" in TEST_F()
1941 "} // namespace ns\n" in TEST_F()
1942 "namespace na {\n" in TEST_F()
1943 "namespace nb {\n" in TEST_F()
1944 "void f() {\n" in TEST_F()
1945 " ns::X x1 = ns::X::X1;\n" in TEST_F()
1946 " ns::Y y1 = ns::Y::Y1;\n" in TEST_F()
1947 " ns::Y y2 = ns::Y2;\n" in TEST_F()
1948 "}\n" in TEST_F()
1949 "} // namespace nb\n" in TEST_F()
1950 "} // namespace na\n"; in TEST_F()
1951 std::string Expected = "namespace ns {\n" in TEST_F()
1952 "enum class X { X1 };\n" in TEST_F()
1953 "enum Y { Y1, Y2 };\n" in TEST_F()
1954 "} // namespace ns\n" in TEST_F()
1955 "\n" in TEST_F()
1956 "namespace x {\n" in TEST_F()
1957 "namespace y {\n" in TEST_F()
1958 "void f() {\n" in TEST_F()
1959 " ns::X x1 = ns::X::X1;\n" in TEST_F()
1960 " ns::Y y1 = ns::Y::Y1;\n" in TEST_F()
1961 " ns::Y y2 = ns::Y2;\n" in TEST_F()
1962 "}\n" in TEST_F()
1963 "} // namespace y\n" in TEST_F()
1964 "} // namespace x\n"; in TEST_F()
1971 std::string Code = "namespace ns {\n" in TEST_F()
1972 "enum class X { X1 };\n" in TEST_F()
1973 "enum Y { Y1, Y2, Y3 };\n" in TEST_F()
1974 "} // namespace ns\n" in TEST_F()
1975 "using ns::X;\n" in TEST_F()
1976 "using ns::Y;\n" in TEST_F()
1977 "using ns::Y::Y2;\n" in TEST_F()
1978 "using ns::Y::Y3;\n" in TEST_F()
1979 "namespace na {\n" in TEST_F()
1980 "namespace nb {\n" in TEST_F()
1981 "void f() {\n" in TEST_F()
1982 " X x1 = X::X1;\n" in TEST_F()
1983 " Y y1 = Y::Y1;\n" in TEST_F()
1984 " Y y2 = Y2;\n" in TEST_F()
1985 " Y y3 = Y3;\n" in TEST_F()
1986 "}\n" in TEST_F()
1987 "} // namespace nb\n" in TEST_F()
1988 "} // namespace na\n"; in TEST_F()
1989 std::string Expected = "namespace ns {\n" in TEST_F()
1990 "enum class X { X1 };\n" in TEST_F()
1991 "enum Y { Y1, Y2, Y3 };\n" in TEST_F()
1992 "} // namespace ns\n" in TEST_F()
1993 "using ns::X;\n" in TEST_F()
1994 "using ns::Y;\n" in TEST_F()
1995 "using ns::Y::Y2;\n" in TEST_F()
1996 "using ns::Y::Y3;\n" in TEST_F()
1997 "\n" in TEST_F()
1998 "namespace x {\n" in TEST_F()
1999 "namespace y {\n" in TEST_F()
2000 "void f() {\n" in TEST_F()
2001 " X x1 = X::X1;\n" in TEST_F()
2002 " Y y1 = Y::Y1;\n" in TEST_F()
2003 " Y y2 = Y2;\n" in TEST_F()
2004 " Y y3 = Y3;\n" in TEST_F()
2005 "}\n" in TEST_F()
2006 "} // namespace y\n" in TEST_F()
2007 "} // namespace x\n"; in TEST_F()
2013 std::string Code = "namespace ns {\n" in TEST_F()
2014 "enum class X { X1 };\n" in TEST_F()
2015 "enum Y { Y1, Y2, Y3 };\n" in TEST_F()
2016 "} // namespace ns\n" in TEST_F()
2017 "typedef ns::X TX;\n" in TEST_F()
2018 "typedef ns::Y TY;\n" in TEST_F()
2019 "using UX = ns::X;\n" in TEST_F()
2020 "using UY = ns::Y;\n" in TEST_F()
2021 "namespace na {\n" in TEST_F()
2022 "namespace nb {\n" in TEST_F()
2023 "void f() {\n" in TEST_F()
2024 " ns::X x1 = ns::X::X1;\n" in TEST_F()
2025 " TX tx1 = TX::X1;\n" in TEST_F()
2026 " UX ux1 = UX::X1;\n" in TEST_F()
2027 " ns::Y y1 = ns::Y::Y1;\n" in TEST_F()
2028 " TY ty1 = TY::Y1;\n" in TEST_F()
2029 " UY uy1 = UY::Y1;\n" in TEST_F()
2030 "}\n" in TEST_F()
2031 "} // namespace nb\n" in TEST_F()
2032 "} // namespace na\n"; in TEST_F()
2033 std::string Expected = "namespace ns {\n" in TEST_F()
2034 "enum class X { X1 };\n" in TEST_F()
2035 "enum Y { Y1, Y2, Y3 };\n" in TEST_F()
2036 "} // namespace ns\n" in TEST_F()
2037 "typedef ns::X TX;\n" in TEST_F()
2038 "typedef ns::Y TY;\n" in TEST_F()
2039 "using UX = ns::X;\n" in TEST_F()
2040 "using UY = ns::Y;\n" in TEST_F()
2041 "\n" in TEST_F()
2042 "namespace x {\n" in TEST_F()
2043 "namespace y {\n" in TEST_F()
2044 "void f() {\n" in TEST_F()
2045 " ns::X x1 = ns::X::X1;\n" in TEST_F()
2046 " TX tx1 = TX::X1;\n" in TEST_F()
2047 " UX ux1 = UX::X1;\n" in TEST_F()
2048 " ns::Y y1 = ns::Y::Y1;\n" in TEST_F()
2049 " TY ty1 = TY::Y1;\n" in TEST_F()
2050 " UY uy1 = UY::Y1;\n" in TEST_F()
2051 "}\n" in TEST_F()
2052 "} // namespace y\n" in TEST_F()
2053 "} // namespace x\n"; in TEST_F()
2059 std::string Code = "namespace na {\n" in TEST_F()
2060 "struct X { enum E { E1 }; };\n" in TEST_F()
2061 "namespace nb {\n" in TEST_F()
2062 "void f() {\n" in TEST_F()
2063 " X::E e = X::E1;\n" in TEST_F()
2064 " X::E ee = X::E::E1;\n" in TEST_F()
2065 "}\n" in TEST_F()
2066 "} // namespace nb\n" in TEST_F()
2067 "} // namespace na\n"; in TEST_F()
2068 std::string Expected = "namespace na {\n" in TEST_F()
2069 "struct X { enum E { E1 }; };\n" in TEST_F()
2070 "\n" in TEST_F()
2071 "} // namespace na\n" in TEST_F()
2072 "namespace x {\n" in TEST_F()
2073 "namespace y {\n" in TEST_F()
2074 "void f() {\n" in TEST_F()
2075 " na::X::E e = na::X::E1;\n" in TEST_F()
2076 " na::X::E ee = na::X::E::E1;\n" in TEST_F()
2077 "}\n" in TEST_F()
2078 "} // namespace y\n" in TEST_F()
2079 "} // namespace x\n"; in TEST_F()
2085 std::string Code = "namespace na {\n" in TEST_F()
2086 "struct X {};\n" in TEST_F()
2087 "namespace nb {\n" in TEST_F()
2088 "template <typename TT>\n" in TEST_F()
2089 "void TempTemp(const TT& t) {\n" in TEST_F()
2090 " TT tmp;\n" in TEST_F()
2091 "}\n" in TEST_F()
2092 "template <typename T>\n" in TEST_F()
2093 "void Temp(const T& t) {\n" in TEST_F()
2094 " T tmp = t;\n" in TEST_F()
2095 " TempTemp(tmp);\n" in TEST_F()
2096 " TempTemp(t);\n" in TEST_F()
2097 "}\n" in TEST_F()
2098 "void f() {\n" in TEST_F()
2099 " X x;\n" in TEST_F()
2100 " Temp(x);\n" in TEST_F()
2101 "}\n" in TEST_F()
2102 "} // namespace nb\n" in TEST_F()
2103 "} // namespace na\n"; in TEST_F()
2104 std::string Expected = "namespace na {\n" in TEST_F()
2105 "struct X {};\n" in TEST_F()
2106 "\n" in TEST_F()
2107 "} // namespace na\n" in TEST_F()
2108 "namespace x {\n" in TEST_F()
2109 "namespace y {\n" in TEST_F()
2110 "template <typename TT>\n" in TEST_F()
2111 "void TempTemp(const TT& t) {\n" in TEST_F()
2112 " TT tmp;\n" in TEST_F()
2113 "}\n" in TEST_F()
2114 "template <typename T>\n" in TEST_F()
2115 "void Temp(const T& t) {\n" in TEST_F()
2116 " T tmp = t;\n" in TEST_F()
2117 " TempTemp(tmp);\n" in TEST_F()
2118 " TempTemp(t);\n" in TEST_F()
2119 "}\n" in TEST_F()
2120 "void f() {\n" in TEST_F()
2121 " na::X x;\n" in TEST_F()
2122 " Temp(x);\n" in TEST_F()
2123 "}\n" in TEST_F()
2124 "} // namespace y\n" in TEST_F()
2125 "} // namespace x\n"; in TEST_F()
2131 std::string Code = "namespace na {\n" in TEST_F()
2132 "class B {\n" in TEST_F()
2133 " public:\n" in TEST_F()
2134 " B() = default;\n" in TEST_F()
2135 " // Allow move only.\n" in TEST_F()
2136 " B(B&&) = default;\n" in TEST_F()
2137 " B& operator=(B&&) = default;\n" in TEST_F()
2138 " B(const B&) = delete;\n" in TEST_F()
2139 " B& operator=(const B&) = delete;\n" in TEST_F()
2140 " private:\n" in TEST_F()
2141 " int ref_;\n" in TEST_F()
2142 "};\n" in TEST_F()
2143 "} // namespace na\n" in TEST_F()
2144 "namespace na {\n" in TEST_F()
2145 "namespace nb {\n" in TEST_F()
2146 "class A {\n" in TEST_F()
2147 "public:\n" in TEST_F()
2148 " A() = default;\n" in TEST_F()
2149 " A(A&&) = default;\n" in TEST_F()
2150 " A& operator=(A&&) = default;\n" in TEST_F()
2151 "private:\n" in TEST_F()
2152 " B b;\n" in TEST_F()
2153 " A(const A&) = delete;\n" in TEST_F()
2154 " A& operator=(const A&) = delete;\n" in TEST_F()
2155 "};\n" in TEST_F()
2156 "void f() { A a; a = A(); A aa = A(); }\n" in TEST_F()
2157 "} // namespace nb\n" in TEST_F()
2158 "} // namespace na\n"; in TEST_F()
2159 std::string Expected = "namespace na {\n" in TEST_F()
2160 "class B {\n" in TEST_F()
2161 " public:\n" in TEST_F()
2162 " B() = default;\n" in TEST_F()
2163 " // Allow move only.\n" in TEST_F()
2164 " B(B&&) = default;\n" in TEST_F()
2165 " B& operator=(B&&) = default;\n" in TEST_F()
2166 " B(const B&) = delete;\n" in TEST_F()
2167 " B& operator=(const B&) = delete;\n" in TEST_F()
2168 " private:\n" in TEST_F()
2169 " int ref_;\n" in TEST_F()
2170 "};\n" in TEST_F()
2171 "} // namespace na\n" in TEST_F()
2172 "\n" in TEST_F()
2173 "namespace x {\n" in TEST_F()
2174 "namespace y {\n" in TEST_F()
2175 "class A {\n" in TEST_F()
2176 "public:\n" in TEST_F()
2177 " A() = default;\n" in TEST_F()
2178 " A(A&&) = default;\n" in TEST_F()
2179 " A& operator=(A&&) = default;\n" in TEST_F()
2180 "private:\n" in TEST_F()
2181 " na::B b;\n" in TEST_F()
2182 " A(const A&) = delete;\n" in TEST_F()
2183 " A& operator=(const A&) = delete;\n" in TEST_F()
2184 "};\n" in TEST_F()
2185 "void f() { A a; a = A(); A aa = A(); }\n" in TEST_F()
2186 "} // namespace y\n" in TEST_F()
2187 "} // namespace x\n"; in TEST_F()
2194 std::string Code = "namespace a{\n" in TEST_F()
2195 "template <typename T>\n" in TEST_F()
2196 "class Base {\n" in TEST_F()
2197 " public:\n" in TEST_F()
2198 " void f() {\n" in TEST_F()
2199 " T t;\n" in TEST_F()
2200 " t.priv();\n" in TEST_F()
2201 " }\n" in TEST_F()
2202 "};\n" in TEST_F()
2203 "} // namespace a\n" in TEST_F()
2204 "namespace d {\n" in TEST_F()
2205 "class D : public a::Base<D> {\n" in TEST_F()
2206 " private:\n" in TEST_F()
2207 " friend class Base<D>;\n" in TEST_F()
2208 " void priv() {}\n" in TEST_F()
2209 " Base b;\n" in TEST_F()
2210 "};\n" in TEST_F()
2211 "\n" in TEST_F()
2212 "void f() {\n" in TEST_F()
2213 " D d;\n" in TEST_F()
2214 " a:: Base<D> b;\n" in TEST_F()
2215 " b.f();\n" in TEST_F()
2216 "}\n" in TEST_F()
2217 "} // namespace d\n"; in TEST_F()
2218 std::string Expected = "namespace a{\n" in TEST_F()
2219 "template <typename T>\n" in TEST_F()
2220 "class Base {\n" in TEST_F()
2221 " public:\n" in TEST_F()
2222 " void f() {\n" in TEST_F()
2223 " T t;\n" in TEST_F()
2224 " t.priv();\n" in TEST_F()
2225 " }\n" in TEST_F()
2226 "};\n" in TEST_F()
2227 "} // namespace a\n" in TEST_F()
2228 "\n" in TEST_F()
2229 "namespace e {\n" in TEST_F()
2230 "class D : public a::Base<D> {\n" in TEST_F()
2231 " private:\n" in TEST_F()
2232 " friend class a::Base<D>;\n" in TEST_F()
2233 " void priv() {}\n" in TEST_F()
2234 " a::Base b;\n" in TEST_F()
2235 "};\n" in TEST_F()
2236 "\n" in TEST_F()
2237 "void f() {\n" in TEST_F()
2238 " D d;\n" in TEST_F()
2239 " a::Base<D> b;\n" in TEST_F()
2240 " b.f();\n" in TEST_F()
2241 "}\n" in TEST_F()
2242 "} // namespace e\n"; in TEST_F()
2248 "namespace x { namespace util { class Some {}; } }\n" in TEST_F()
2249 "namespace x { namespace y {namespace base { class Base {}; } } }\n" in TEST_F()
2250 "namespace util { class Status {}; }\n" in TEST_F()
2251 "namespace base { class Base {}; }\n" in TEST_F()
2252 "namespace na {\n" in TEST_F()
2253 "namespace nb {\n" in TEST_F()
2254 "void f() {\n" in TEST_F()
2255 " util::Status s1; x::util::Some s2;\n" in TEST_F()
2256 " base::Base b1; x::y::base::Base b2;\n" in TEST_F()
2257 "}\n" in TEST_F()
2258 "} // namespace nb\n" in TEST_F()
2259 "} // namespace na\n"; in TEST_F()
2262 "namespace x { namespace util { class Some {}; } }\n" in TEST_F()
2263 "namespace x { namespace y {namespace base { class Base {}; } } }\n" in TEST_F()
2264 "namespace util { class Status {}; }\n" in TEST_F()
2265 "namespace base { class Base {}; }\n" in TEST_F()
2266 "\n" in TEST_F()
2267 "namespace x {\n" in TEST_F()
2268 "namespace y {\n" in TEST_F()
2269 "void f() {\n" in TEST_F()
2270 " ::util::Status s1; util::Some s2;\n" in TEST_F()
2271 " ::base::Base b1; base::Base b2;\n" in TEST_F()
2272 "}\n" in TEST_F()
2273 "} // namespace y\n" in TEST_F()
2274 "} // namespace x\n"; in TEST_F()