From 9539a8dcb0e86f90dd15b2ddb901b4deeb81d57d Mon Sep 17 00:00:00 2001
From: Erik Verbruggen <erik.verbruggen@nokia.com>
Date: Thu, 4 Mar 2010 16:40:47 +0100
Subject: [PATCH] Changed error to warning when using a string literal for an
 ID.

---
 src/libs/qmljs/qmljscheck.cpp | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp
index d7c04eb5f11..b103584bb15 100644
--- a/src/libs/qmljs/qmljscheck.cpp
+++ b/src/libs/qmljs/qmljscheck.cpp
@@ -255,13 +255,18 @@ bool Check::visit(UiScriptBinding *ast)
             return false;
         }
 
-        IdentifierExpression *idExp = cast<IdentifierExpression *>(expStmt->expression);
-        if (! idExp) {
+        QString id;
+        if (IdentifierExpression *idExp = cast<IdentifierExpression *>(expStmt->expression)) {
+            id = idExp->name->asString();
+        } else if (StringLiteral *strExp = cast<StringLiteral *>(expStmt->expression)) {
+            id = strExp->value->asString();
+            warning(loc, QCoreApplication::translate("QmlJS::Check", "using string literals for ids is discouraged"));
+        } else {
             error(loc, QCoreApplication::translate("QmlJS::Check", "expected id"));
             return false;
         }
 
-        if (! idExp->name->asString()[0].isLower()) {
+        if (id.isEmpty() || ! id[0].isLower()) {
             error(loc, QCoreApplication::translate("QmlJS::Check", "ids must be lower case"));
             return false;
         }
-- 
GitLab