aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMaximilian Goldstein <max.goldstein@qt.io>2020-05-06 12:22:50 +0200
committerMaximilian Goldstein <max.goldstein@qt.io>2020-05-19 08:10:11 +0200
commitd29f3d7a62780d74f62330b0e3a0703a72155852 (patch)
tree8c1b520890827c059ba93d1e15f579a1bf011437 /src
parent98277a1e8f7bc7a32035e9ade9a55a4f51d8dd80 (diff)
Allow using lowercase enum names
Fixes: QTBUG-83395 Change-Id: I98dd953497c6e28a1cfb5228095f05547e49b11d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/qml/qml/qqmltypecompiler.cpp5
-rw-r--r--src/qml/qml/qqmltypewrapper.cpp23
2 files changed, 1 insertions, 27 deletions
diff --git a/src/qml/qml/qqmltypecompiler.cpp b/src/qml/qml/qqmltypecompiler.cpp
index 65b9213954..6a4966ffba 100644
--- a/src/qml/qml/qqmltypecompiler.cpp
+++ b/src/qml/qml/qqmltypecompiler.cpp
@@ -551,11 +551,8 @@ bool QQmlEnumTypeResolver::resolveEnumBindings()
return true;
}
-bool QQmlEnumTypeResolver::assignEnumToBinding(QmlIR::Binding *binding, const QStringRef &enumName, int enumValue, bool isQtObject)
+bool QQmlEnumTypeResolver::assignEnumToBinding(QmlIR::Binding *binding, const QStringRef &, int enumValue, bool)
{
- if (enumName.length() > 0 && enumName[0].isLower() && !isQtObject) {
- COMPILE_EXCEPTION(binding, tr("Invalid property assignment: Enum value \"%1\" cannot start with a lowercase letter").arg(enumName.toString()));
- }
binding->type = QV4::CompiledData::Binding::Type_Number;
binding->value.constantValueIndex = compiler->registerConstant(QV4::Encode((double)enumValue));
// binding->setNumberValueInternal((double)enumValue);
diff --git a/src/qml/qml/qqmltypewrapper.cpp b/src/qml/qml/qqmltypewrapper.cpp
index da76659ef4..6258403f33 100644
--- a/src/qml/qml/qqmltypewrapper.cpp
+++ b/src/qml/qml/qqmltypewrapper.cpp
@@ -158,14 +158,6 @@ static int enumForSingleton(QV4::ExecutionEngine *v4, String *name, QObject *qob
return -1;
}
-static ReturnedValue throwLowercaseEnumError(QV4::ExecutionEngine *v4, String *name, const QQmlType &type)
-{
- const QString message =
- QStringLiteral("Cannot access enum value '%1' of '%2', enum values need to start with an uppercase letter.")
- .arg(name->toQString()).arg(QLatin1String(type.typeName()));
- return v4->throwTypeError(message);
-}
-
ReturnedValue QQmlTypeWrapper::virtualGet(const Managed *m, PropertyKey id, const Value *receiver, bool *hasProperty)
{
// Keep this code in sync with ::virtualResolveLookupGetter
@@ -220,13 +212,6 @@ ReturnedValue QQmlTypeWrapper::virtualGet(const Managed *m, PropertyKey id, cons
if (hasProperty)
*hasProperty = ok;
- // Warn when attempting to access a lowercased enum value, singleton case
- if (!ok && includeEnums && !name->startsWithUpper()) {
- enumForSingleton(v4, name, qobjectSingleton, type, &ok);
- if (ok)
- return throwLowercaseEnumError(v4, name, type);
- }
-
return result;
}
} else if (type.isQJSValueSingleton()) {
@@ -304,14 +289,6 @@ ReturnedValue QQmlTypeWrapper::virtualGet(const Managed *m, PropertyKey id, cons
if (hasProperty)
*hasProperty = ok;
- // Warn when attempting to access a lowercased enum value, non-singleton case
- if (!ok && type.isValid() && !type.isSingleton() && !name->startsWithUpper()) {
- bool enumOk = false;
- type.enumValue(QQmlEnginePrivate::get(v4->qmlEngine()), name, &enumOk);
- if (enumOk)
- return throwLowercaseEnumError(v4, name, type);
- }
-
return result;
}