summaryrefslogtreecommitdiff
path: root/src/libs/qmljs/qmljscodeformatter.cpp
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2011-10-19 09:21:48 +0200
committerChristian Kamm <christian.d.kamm@nokia.com>2011-10-19 09:40:12 +0200
commit567e68a42a0a57f6dc83d39cf664e48c1dee6f9b (patch)
tree549f41757d84e64ad42129b6192dc3ca29f3fcd1 /src/libs/qmljs/qmljscodeformatter.cpp
parent3ede0687baa9260ae32f849a1f433de57381a1ff (diff)
downloadqt-creator-567e68a42a0a57f6dc83d39cf664e48c1dee6f9b.tar.gz
QmlJS indenter: Fix hang when using 'else (a==a) {}'.
Change-Id: Id7b8fba6707b1eaabf8065854f357cf600c809c5 Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
Diffstat (limited to 'src/libs/qmljs/qmljscodeformatter.cpp')
-rw-r--r--src/libs/qmljs/qmljscodeformatter.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libs/qmljs/qmljscodeformatter.cpp b/src/libs/qmljs/qmljscodeformatter.cpp
index 782e0f36a5..fa5ef50eea 100644
--- a/src/libs/qmljs/qmljscodeformatter.cpp
+++ b/src/libs/qmljs/qmljscodeformatter.cpp
@@ -255,8 +255,13 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
case expression_or_label:
switch (kind) {
- case Colon: turnInto(labelled_statement); break;
- default: enter(expression); continue;
+ case Colon: turnInto(labelled_statement); break;
+
+ // propagate 'leave' from expression state
+ case RightBracket:
+ case RightParenthesis: leave(); continue;
+
+ default: enter(expression); continue;
} break;
case ternary_op:
@@ -756,6 +761,7 @@ bool CodeFormatter::tryStatement()
case Function:
case Number:
case String:
+ case LeftParenthesis:
enter(expression);
// look at the token again
m_tokenIndex -= 1;