From 962c7ab6f8705a8fb7b60c3544d4189503c1ec17 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 18 Feb 2015 11:17:06 +0100 Subject: [PATCH] always flush scopes on closing brace without that, both the lines cond1 { cond2: VAR = val } and cond1 { cond2: else: cond3 } would yield two bogus errors: first an excess brace, and then a missing one. Change-Id: I8609106c1ad387577deec2077e2ce13507ac4d3f Reviewed-by: Joerg Bornemann Reviewed-by: Oswald Buddenhagen --- qmake/library/qmakeparser.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qmake/library/qmakeparser.cpp b/qmake/library/qmakeparser.cpp index 61331f4348..18048502aa 100644 --- a/qmake/library/qmakeparser.cpp +++ b/qmake/library/qmakeparser.cpp @@ -701,8 +701,9 @@ void QMakeParser::read(ProFile *pro, const QString &in, int line, SubGrammar gra } else if (c == '}') { FLUSH_LHS_LITERAL(); finalizeCond(tokPtr, buf, ptr, wordCount); - flushScopes(tokPtr); + m_state = StNew; // De-facto newline closeScope: + flushScopes(tokPtr); if (!m_blockstack.top().braceLevel) { parseError(fL1S("Excess closing brace.")); } else if (!--m_blockstack.top().braceLevel