diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2011-12-23 15:10:17 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-09 19:10:21 -0300 |
commit | 4889efc199243af54cf71accffb3f9554cba933d (patch) | |
tree | c08e9b0b65074868454f09807c51455a582a5410 /typesystem.cpp | |
parent | ab94961a639cc7b364fcb1e3f68531792c312990 (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.cpp | 4 |
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"]; |