summaryrefslogtreecommitdiff
path: root/src/libs/qmljs/qmljscheck.cpp
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2017-11-06 16:16:58 +0100
committerThomas Hartmann <thomas.hartmann@qt.io>2017-11-06 16:41:07 +0000
commit6a738504d031959fc43d70c197b820c05057ea92 (patch)
tree42cd697a6dc053b5e698c15d59750f1912fb7dbe /src/libs/qmljs/qmljscheck.cpp
parent438fe38e1fcd7c7c79282663aa1a8216cabd5a3f (diff)
downloadqt-creator-6a738504d031959fc43d70c197b820c05057ea92.tar.gz
QmlJS: Add error message for dynamic property called "data"
The default property of most QtQuick items is data and therefore "data" should not be used as a property name. Task-number: QTCREATORBUG-19225 Change-Id: I54d1b72ce984debd4c366b7261e93b7a81b8c940 Reviewed-by: Marco Benelli <marco.benelli@qt.io>
Diffstat (limited to 'src/libs/qmljs/qmljscheck.cpp')
-rw-r--r--src/libs/qmljs/qmljscheck.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp
index 6bc596eacd..42558f65a4 100644
--- a/src/libs/qmljs/qmljscheck.cpp
+++ b/src/libs/qmljs/qmljscheck.cpp
@@ -1044,15 +1044,20 @@ bool Check::visit(UiPublicMember *ast)
{
if (ast->type == UiPublicMember::Property) {
if (ast->isValid()) {
- const QStringRef name = ast->memberTypeName();
- if (!name.isEmpty() && name.at(0).isLower()) {
- const QString nameS = name.toString();
- if (!isValidBuiltinPropertyType(nameS))
- addMessage(ErrInvalidPropertyType, ast->typeToken, nameS);
+ const QStringRef typeName = ast->memberTypeName();
+ if (!typeName.isEmpty() && typeName.at(0).isLower()) {
+ const QString typeNameS = typeName.toString();
+ if (!isValidBuiltinPropertyType(typeNameS))
+ addMessage(ErrInvalidPropertyType, ast->typeToken, typeNameS);
}
+ const QStringRef name = ast->name;
+
+ if (name == "data")
+ addMessage(ErrInvalidPropertyName, ast->identifierToken, name.toString());
+
// warn about dubious use of var/variant
- if (name == QLatin1String("variant") || name == QLatin1String("var")) {
+ if (typeName == QLatin1String("variant") || typeName == QLatin1String("var")) {
Evaluate evaluator(&_scopeChain);
const Value *init = evaluator(ast->statement);
QString preferredType;