forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user