From d02b647bbfb903bb517ebcf275343f8fc8749b4b Mon Sep 17 00:00:00 2001 From: Christian Kamm <christian.d.kamm@nokia.com> Date: Tue, 29 Nov 2011 10:19:04 +0100 Subject: [PATCH] QmlJS checks: Don't warn for fallthrough on the last clause. Change-Id: Ica84ced241eafd82cededa65d2e90f855e448f89 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com> --- src/libs/qmljs/qmljscheck.cpp | 9 +++------ tests/auto/qml/codemodel/check/case-fallthrough.qml | 2 ++ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp index 3b1bde04384..40e3ff5a72d 100644 --- a/src/libs/qmljs/qmljscheck.cpp +++ b/src/libs/qmljs/qmljscheck.cpp @@ -1096,12 +1096,9 @@ bool Check::visit(CaseBlock *ast) for (CaseClauses *it = ast->moreClauses; it; it = it->next) clauses += qMakePair(it->clause->caseToken, it->clause->statements); - for (int i = 0; i < clauses.size(); ++i) { - SourceLocation nextToken; - if (i + 1 < clauses.size()) - nextToken = clauses[i + 1].first; - else - nextToken = ast->rbraceToken; + // check all but the last clause for fallthrough + for (int i = 0; i < clauses.size() - 1; ++i) { + const SourceLocation nextToken = clauses[i + 1].first; checkCaseFallthrough(clauses[i].second, clauses[i].first, nextToken); } return true; diff --git a/tests/auto/qml/codemodel/check/case-fallthrough.qml b/tests/auto/qml/codemodel/check/case-fallthrough.qml index f98bcf2b0ed..a1851da5648 100644 --- a/tests/auto/qml/codemodel/check/case-fallthrough.qml +++ b/tests/auto/qml/codemodel/check/case-fallthrough.qml @@ -37,6 +37,8 @@ Item { case 8: // 20 9 12 x = 1 case 9: + case 11: // no warning + x = 1 } } } -- GitLab