diff options
author | Christian Kamm <christian.d.kamm@nokia.com> | 2011-10-19 09:21:48 +0200 |
---|---|---|
committer | Christian Kamm <christian.d.kamm@nokia.com> | 2011-10-19 09:40:12 +0200 |
commit | 567e68a42a0a57f6dc83d39cf664e48c1dee6f9b (patch) | |
tree | 549f41757d84e64ad42129b6192dc3ca29f3fcd1 /src/libs/qmljs/qmljscodeformatter.cpp | |
parent | 3ede0687baa9260ae32f849a1f433de57381a1ff (diff) | |
download | qt-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.cpp | 10 |
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; |