From 5ac981a0aceeb688656453731dee191be251853f Mon Sep 17 00:00:00 2001
From: Christian Kamm <christian.d.kamm@nokia.com>
Date: Tue, 19 Oct 2010 12:49:09 +0200
Subject: [PATCH] C++ indenter: Fix indentation after namespace aliases.

Task-number: QTCREATORBUG-2574
Reviewed-by: Roberto Raggi
---
 src/plugins/cpptools/cppcodeformatter.cpp         |  1 +
 .../cplusplus/codeformatter/tst_codeformatter.cpp | 15 +++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp
index 3c13d10f589..b733277dd41 100644
--- a/src/plugins/cpptools/cppcodeformatter.cpp
+++ b/src/plugins/cpptools/cppcodeformatter.cpp
@@ -93,6 +93,7 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
         case namespace_start:
             switch (kind) {
             case T_LBRACE:      enter(namespace_open); break;
+            case T_SEMICOLON:
             case T_RBRACE:      leave(); break;
             } break;
 
diff --git a/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp b/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp
index 0b240fa107c..541f5c4e4d9 100644
--- a/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp
+++ b/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp
@@ -51,6 +51,7 @@ private Q_SLOTS:
     void forStatement();
     void templateSingleline();
     void macrosNoSemicolon2();
+    void renamedNamespace();
 };
 
 struct Line {
@@ -985,6 +986,20 @@ void tst_CodeFormatter::macrosNoSemicolon2()
     checkIndent(data);
 }
 
+void tst_CodeFormatter::renamedNamespace()
+{
+    QList<Line> data;
+    data
+         << Line("namespace X = Y;")
+         << Line("void foo()")
+         << Line("{")
+         << Line("    return;")
+         << Line("}")
+         << Line("int i;")
+         ;
+    checkIndent(data);
+}
+
 QTEST_APPLESS_MAIN(tst_CodeFormatter)
 #include "tst_codeformatter.moc"
 
-- 
GitLab