aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qml/qml/qqmltypecompiler.cpp5
-rw-r--r--src/qml/qml/qqmltypewrapper.cpp23
-rw-r--r--tests/auto/qml/qqmllanguage/data/lowercaseEnumCompileTime.1.errors.txt1
-rw-r--r--tests/auto/qml/qqmllanguage/data/lowercaseEnumCompileTime.2.errors.txt1
-rw-r--r--tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp17
5 files changed, 7 insertions, 40 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;
}
diff --git a/tests/auto/qml/qqmllanguage/data/lowercaseEnumCompileTime.1.errors.txt b/tests/auto/qml/qqmllanguage/data/lowercaseEnumCompileTime.1.errors.txt
deleted file mode 100644
index 33360e96cf..0000000000
--- a/tests/auto/qml/qqmllanguage/data/lowercaseEnumCompileTime.1.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-5:5:Invalid property assignment: Enum value "lowercaseEnumVal" cannot start with a lowercase letter
diff --git a/tests/auto/qml/qqmllanguage/data/lowercaseEnumCompileTime.2.errors.txt b/tests/auto/qml/qqmllanguage/data/lowercaseEnumCompileTime.2.errors.txt
deleted file mode 100644
index 33360e96cf..0000000000
--- a/tests/auto/qml/qqmllanguage/data/lowercaseEnumCompileTime.2.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-5:5:Invalid property assignment: Enum value "lowercaseEnumVal" cannot start with a lowercase letter
diff --git a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
index 3dbaa2ec4e..b4888f6fa7 100644
--- a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
+++ b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
@@ -4073,40 +4073,35 @@ void tst_qqmllanguage::globalEnums()
void tst_qqmllanguage::lowercaseEnumRuntime_data()
{
QTest::addColumn<QString>("file");
- QTest::addColumn<QString>("errorMessage");
- QTest::newRow("enum from normal type") << "lowercaseEnumRuntime.1.qml" << ":8: TypeError: Cannot access enum value 'lowercaseEnumVal' of 'MyTypeObject', enum values need to start with an uppercase letter.";
- QTest::newRow("enum from singleton type") << "lowercaseEnumRuntime.2.qml" << ":8: TypeError: Cannot access enum value 'lowercaseEnumVal' of 'MyTypeObjectSingleton', enum values need to start with an uppercase letter.";
+ QTest::newRow("enum from normal type") << "lowercaseEnumRuntime.1.qml";
+ QTest::newRow("enum from singleton type") << "lowercaseEnumRuntime.2.qml";
}
void tst_qqmllanguage::lowercaseEnumRuntime()
{
QFETCH(QString, file);
- QFETCH(QString, errorMessage);
QQmlComponent component(&engine, testFileUrl(file));
VERIFY_ERRORS(0);
- QString warning = component.url().toString() + errorMessage;
- QTest::ignoreMessage(QtWarningMsg, qPrintable(warning));
delete component.create();
}
void tst_qqmllanguage::lowercaseEnumCompileTime_data()
{
QTest::addColumn<QString>("file");
- QTest::addColumn<QString>("errorFile");
- QTest::newRow("assignment to int property") << "lowercaseEnumCompileTime.1.qml" << "lowercaseEnumCompileTime.1.errors.txt";
- QTest::newRow("assignment to enum property") << "lowercaseEnumCompileTime.2.qml" << "lowercaseEnumCompileTime.2.errors.txt";
+ QTest::newRow("assignment to int property") << "lowercaseEnumCompileTime.1.qml";
+ QTest::newRow("assignment to enum property") << "lowercaseEnumCompileTime.2.qml";
}
void tst_qqmllanguage::lowercaseEnumCompileTime()
{
QFETCH(QString, file);
- QFETCH(QString, errorFile);
QQmlComponent component(&engine, testFileUrl(file));
- VERIFY_ERRORS(qPrintable(errorFile));
+ VERIFY_ERRORS(0);
+ delete component.create();
}
void tst_qqmllanguage::scopedEnum()