diff options
author | Richard Trieu <rtrieu@google.com> | 2011-05-26 20:11:09 +0000 |
---|---|---|
committer | Richard Trieu <rtrieu@google.com> | 2011-05-26 20:11:09 +0000 |
commit | f858bd817e8d6eac58ae496fa96a2f508fbb286f (patch) | |
tree | 0acecc50ca66e34450d8a67f3d41da82a6c256d3 /test/Parser/nested-namespaces-recovery.cpp | |
parent | f13654600b6c567b2f05902cfa2e86b23ddcbd4b (diff) |
Add a fix-it and better error recovery for improperly nested namespaces. This will give a better error message for cases such as "namespace foo::bar::baz {}" and a suggested fix-it of "namespace foo { namespace bar { namespace baz {} } }"
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132138 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Parser/nested-namespaces-recovery.cpp')
-rw-r--r-- | test/Parser/nested-namespaces-recovery.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/Parser/nested-namespaces-recovery.cpp b/test/Parser/nested-namespaces-recovery.cpp new file mode 100644 index 0000000000..d45938bb3e --- /dev/null +++ b/test/Parser/nested-namespaces-recovery.cpp @@ -0,0 +1,24 @@ +// RUN: cp %s %t +// RUN: %clang_cc1 -fsyntax-only -verify %s +// RUN: not %clang_cc1 -x c++ -fixit %t +// RUN: %clang_cc1 -x c++ %t + +namespace foo1::foo2::foo3 { // expected-error {{nested namespace definition must define each namespace separately}} + int foo(int x) { return x; } +} + +int foo(int x) { + return foo1::foo2::foo3::foo(x); +} + +namespace bar1 { + namespace bar2 { + namespace bar3 { + int bar(int x) { return x; } + } + } +} + +int bar(int x) { + return bar1::bar2::bar3::bar(x); +} |