summaryrefslogtreecommitdiffstats
path: root/src/tools/moc/moc.cpp
diff options
context:
space:
mode:
authorMatthew Vogt <matthew.vogt@nokia.com>2012-07-03 16:06:01 +1000
committerQt by Nokia <qt-info@nokia.com>2012-07-04 00:48:44 +0200
commit10edf63174414cc95165c4fc14a3278e944dfbe2 (patch)
treefcf9f0cd2d4ee429a76339df7d32c00b257cbb74 /src/tools/moc/moc.cpp
parent0ce1574dad6f80d563c61259b4d4bff84d03b889 (diff)
Revert "Allow moc to handle symbols that have been redefined."
This reverts commit 5bb1408927b4eb5a03e8ab9f7cbc68f80d8a3962. The temporary measure used to support redefinition of QtDeclarative class names during the transition period is no longer required. Task-number: QTBUG-24517 Change-Id: Ib90f08fcdfb02e004e594ac72b698eaa0325d98d Reviewed-by: Kent Hansen <kent.hansen@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Diffstat (limited to 'src/tools/moc/moc.cpp')
-rw-r--r--src/tools/moc/moc.cpp109
1 files changed, 1 insertions, 108 deletions
diff --git a/src/tools/moc/moc.cpp b/src/tools/moc/moc.cpp
index aaaf701ea5..c35f27deaf 100644
--- a/src/tools/moc/moc.cpp
+++ b/src/tools/moc/moc.cpp
@@ -302,9 +302,7 @@ void Moc::parseFunctionArguments(FunctionDef *def)
arg.rightType += lexem();
}
arg.normalizedType = normalizeType(QByteArray(arg.type.name + ' ' + arg.rightType));
- arg.normalizedType = getTypeSubstitution(arg.normalizedType);
arg.typeNameForCast = normalizeType(QByteArray(noRef(arg.type.name) + "(*)" + arg.rightType));
- arg.typeNameForCast = getTypeSubstitution(arg.typeNameForCast);
if (test(EQ))
arg.isDefault = true;
def->arguments += arg;
@@ -414,7 +412,6 @@ bool Moc::parseFunction(FunctionDef *def, bool inMacro)
}
def->normalizedType = normalizeType(def->type.name);
- def->normalizedType = getTypeSubstitution(def->normalizedType);
if (!test(RPAREN)) {
parseFunctionArguments(def);
@@ -513,7 +510,6 @@ bool Moc::parseMaybeFunction(const ClassDef *cdef, FunctionDef *def)
}
def->normalizedType = normalizeType(def->type.name);
- def->normalizedType = getTypeSubstitution(def->normalizedType);
if (!test(RPAREN)) {
parseFunctionArguments(def);
@@ -970,7 +966,6 @@ void Moc::createPropertyDef(PropertyDef &propDef)
QVariant.
*/
type = normalizeType(type);
- type = getTypeSubstitution(type);
if (type == "QMap")
type = "QMap<QString,QVariant>";
else if (type == "QValueList")
@@ -1244,8 +1239,7 @@ void Moc::parseInterfaces(ClassDef *def)
}
// resolve from classnames to interface ids
for (int i = 0; i < iface.count(); ++i) {
- QByteArray className = getTypeSubstitution(iface.at(i).className);
- QByteArray iid = interface2IdMap.value(className);
+ const QByteArray iid = interface2IdMap.value(iface.at(i).className);
if (iid.isEmpty())
error("Undefined interface");
@@ -1503,107 +1497,6 @@ void Moc::checkProperties(ClassDef *cdef)
}
}
-QByteArray Moc::getSubstitution(const QByteArray &token) const
-{
- Macros::ConstIterator it = preprocessor.macros.find(token);
- if (it != preprocessor.macros.end() && it->symbols.count() == 1) {
- // We can only handle substitutions that result in a single symbol
- return it->symbols.at(0).lexem();
- }
-
- return QByteArray();
-}
-
-QByteArray Moc::getTokenSubstitution(const QByteArray &token) const
-{
- QByteArray result = token;
-
- QSet<QByteArray> used;
-
- // Process substitution chain until no replacement exists
- QByteArray substitution = getSubstitution(result);
- while (!substitution.isEmpty()) {
- used.insert(result);
- result = substitution;
-
- if (used.contains(result)) {
- break;
- }
-
- substitution = getSubstitution(result);
- }
-
- return result;
-}
-
-QByteArray Moc::getWordSubstitution(const QByteArray &word) const
-{
- QByteArray result;
-
- // A word can contain multiple components separated by '*'
- int startIndex = 0;
- do {
- int index = word.indexOf('*', startIndex);
- if (index == -1) {
- result.append(getTokenSubstitution(word.mid(startIndex)));
- } else {
- result.append(getTokenSubstitution(word.mid(startIndex, (index - startIndex))));
- result.append('*');
- }
-
- startIndex = index + 1;
- } while (startIndex != 0);
-
- return result;
-}
-
-QByteArray Moc::getNameSubstitution(const QByteArray &name) const
-{
- QByteArray result;
-
- // Parse multiple tokens in this name independently
- int startIndex = 0;
- do {
- int index = name.indexOf(' ', startIndex);
- if (index == -1) {
- result.append(getWordSubstitution(name.mid(startIndex)));
- } else {
- result.append(getWordSubstitution(name.mid(startIndex, (index - startIndex))));
- result.append(' ');
- }
-
- startIndex = index + 1;
- } while (startIndex != 0);
-
- return result;
-}
-
-QByteArray Moc::getTypeSubstitution(const QByteArray &typeName) const
-{
- int index = typeName.indexOf('<');
- if (index != -1) {
- QByteArray templateName = typeName.left(index);
-
- int lastIndex = typeName.lastIndexOf('>');
- if (lastIndex > index) {
- QByteArray result = getNameSubstitution(templateName);
-
- // Parse the interior type independently
- QByteArray parameter = typeName.mid(index + 1, (lastIndex - index - 1));
- QByteArray interior = getTypeSubstitution(parameter);
- if (interior.endsWith('>')) {
- interior.append(' ');
- }
- result.append('<').append(interior).append(typeName.mid(lastIndex));
- return result;
- } else {
- // Something is broken; return the input unmodified
- return typeName;
- }
- }
-
- return getNameSubstitution(typeName);
-}
QT_END_NAMESPACE