QmlJS: Tolerate extra members in qmltypes

We are going to add more fields to the qmltypes file format. Qt Creator
should not barf on those.

Fixes: QTCREATORBUG-23855
Change-Id: Ibea5a8270d2236d6b9b87ae672a1526107fe8b3b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Ulf Hermann
2020-04-14 18:00:33 +02:00
parent 38d4ccbdcb
commit b86dedb3e8

View File

@@ -214,10 +214,6 @@ void TypeDescriptionReader::readComponent(UiObjectDefinition *ast)
readSignalOrMethod(component, name == QLatin1String("Method"), fmo); readSignalOrMethod(component, name == QLatin1String("Method"), fmo);
else if (name == QLatin1String("Enum")) else if (name == QLatin1String("Enum"))
readEnum(component, fmo); readEnum(component, fmo);
else
addWarning(component->firstSourceLocation(),
tr("Expected only Property, Method, Signal and Enum object definitions, not \"%1\".")
.arg(name));
} else if (script) { } else if (script) {
QString name = toString(script->qualifiedId); QString name = toString(script->qualifiedId);
if (name == QLatin1String("name")) { if (name == QLatin1String("name")) {
@@ -238,14 +234,7 @@ void TypeDescriptionReader::readComponent(UiObjectDefinition *ast)
fmo->setIsCreatable(readBoolBinding(script)); fmo->setIsCreatable(readBoolBinding(script));
} else if (name == QLatin1String("isComposite")) { } else if (name == QLatin1String("isComposite")) {
fmo->setIsComposite(readBoolBinding(script)); fmo->setIsComposite(readBoolBinding(script));
} else {
addWarning(script->firstSourceLocation(),
tr("Expected only name, prototype, defaultProperty, attachedType, exports, "
"isSingleton, isCreatable, isComposite and exportMetaObjectRevisions "
"script bindings, not \"%1\".").arg(name));
} }
} else {
addWarning(member->firstSourceLocation(), tr("Expected only script bindings and object definitions."));
} }
} }
@@ -276,12 +265,7 @@ void TypeDescriptionReader::readModuleApi(UiObjectDefinition *ast)
apiInfo.version = readNumericVersionBinding(script); apiInfo.version = readNumericVersionBinding(script);
} else if (name == QLatin1String("name")) { } else if (name == QLatin1String("name")) {
apiInfo.cppName = readStringBinding(script); apiInfo.cppName = readStringBinding(script);
} else {
addWarning(script->firstSourceLocation(),
tr("Expected only uri, version and name script bindings."));
} }
} else {
addWarning(member->firstSourceLocation(), tr("Expected only script bindings."));
} }
} }
@@ -311,8 +295,6 @@ void TypeDescriptionReader::readSignalOrMethod(UiObjectDefinition *ast, bool isM
QString name = toString(component->qualifiedTypeNameId); QString name = toString(component->qualifiedTypeNameId);
if (name == QLatin1String("Parameter")) if (name == QLatin1String("Parameter"))
readParameter(component, &fmm); readParameter(component, &fmm);
else
addWarning(component->firstSourceLocation(), tr("Expected only Parameter object definitions."));
} else if (script) { } else if (script) {
QString name = toString(script->qualifiedId); QString name = toString(script->qualifiedId);
if (name == QLatin1String("name")) if (name == QLatin1String("name"))
@@ -321,11 +303,6 @@ void TypeDescriptionReader::readSignalOrMethod(UiObjectDefinition *ast, bool isM
fmm.setReturnType(readStringBinding(script)); fmm.setReturnType(readStringBinding(script));
else if (name == QLatin1String("revision")) else if (name == QLatin1String("revision"))
fmm.setRevision(readIntBinding(script)); fmm.setRevision(readIntBinding(script));
else
addWarning(script->firstSourceLocation(), tr("Expected only name and type script bindings."));
} else {
addWarning(member->firstSourceLocation(), tr("Expected only script bindings and object definitions."));
} }
} }
@@ -367,8 +344,6 @@ void TypeDescriptionReader::readProperty(UiObjectDefinition *ast, FakeMetaObject
isList = readBoolBinding(script); isList = readBoolBinding(script);
else if (id == QLatin1String("revision")) else if (id == QLatin1String("revision"))
revision = readIntBinding(script); revision = readIntBinding(script);
else
addWarning(script->firstSourceLocation(), tr("Expected only type, name, revision, isPointer, isReadonly and isList script bindings."));
} }
if (name.isEmpty() || type.isEmpty()) { if (name.isEmpty() || type.isEmpty()) {
@@ -396,8 +371,6 @@ void TypeDescriptionReader::readEnum(UiObjectDefinition *ast, FakeMetaObject::Pt
fme.setName(readStringBinding(script)); fme.setName(readStringBinding(script));
else if (name == QLatin1String("values")) else if (name == QLatin1String("values"))
readEnumValues(script, &fme); readEnumValues(script, &fme);
else
addWarning(script->firstSourceLocation(), tr("Expected only name and values script bindings."));
} }
fmo->addEnum(fme); fmo->addEnum(fme);
@@ -427,8 +400,6 @@ void TypeDescriptionReader::readParameter(UiObjectDefinition *ast, FakeMetaMetho
// ### unhandled // ### unhandled
} else if (id == QLatin1String("isList")) { } else if (id == QLatin1String("isList")) {
// ### unhandled // ### unhandled
} else {
addWarning(script->firstSourceLocation(), tr("Expected only name and type script bindings."));
} }
} }