aboutsummaryrefslogtreecommitdiffstats
path: root/typesystem.cpp
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2011-12-23 15:10:17 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-09 19:10:21 -0300
commit4889efc199243af54cf71accffb3f9554cba933d (patch)
treec08e9b0b65074868454f09807c51455a582a5410 /typesystem.cpp
parentab94961a639cc7b364fcb1e3f68531792c312990 (diff)
Added the "<custom-type>" tag, and better requirements for function signatures.sb-0.10.10
Trying to find a non-qualified (without scope information) class, found in a function signature or return type, was a bad idea for it makes the parsing awfully slow when dealing with huge libraries. If the user writes a type in short form in a function signature (e.g. "SomeClass", instead of "Namespace::SomeClass"), APIExtractor will exit with a message indicating the error and the possible candidates for the type. The "<custom-type>" tag is for types of the target language ("PyObject" in Python, for instance) and will be handled by the generator. Reviewed by Hugo Parente <hugo.lima@openbossa.org> Reviewed by Paulo Alcantara <pcacjr@gmail.com>
Diffstat (limited to 'typesystem.cpp')
-rw-r--r--typesystem.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/typesystem.cpp b/typesystem.cpp
index 8808e5314..a08c2df2e 100644
--- a/typesystem.cpp
+++ b/typesystem.cpp
@@ -45,6 +45,7 @@ Handler::Handler(TypeDatabase* database, bool generate)
m_ignoreDepth = 0;
tagNames["rejection"] = StackElement::Rejection;
+ tagNames["custom-type"] = StackElement::CustomTypeEntry;
tagNames["primitive-type"] = StackElement::PrimitiveTypeEntry;
tagNames["container-type"] = StackElement::ContainerTypeEntry;
tagNames["object-type"] = StackElement::ObjectTypeEntry;
@@ -629,6 +630,9 @@ bool Handler::startElement(const QString &, const QString &n,
}
switch (element->type) {
+ case StackElement::CustomTypeEntry:
+ element->entry = new TypeEntry(name, TypeEntry::CustomType, since);
+ break;
case StackElement::PrimitiveTypeEntry: {
QString targetLangName = attributes["target-lang-name"];
QString targetLangApiName = attributes["target-lang-api-name"];