aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor/typesystem.cpp
Commit message (Collapse)AuthorAgeFilesLines
* shiboken: Detect class enums by Clang entirelyFriedemann Kleint2018-04-191-5/+0
| | | | | | | | | | | | | | The Clang function clang_EnumDecl_isScoped() tells whether an enum is a class, so, there is no need to specify that in the typesystem. Use that information to pass it up to the metalang classes and revert the parts of 44cb6c51e6c3b43376f284941454dc8c13b81c3f that added it to the type system. Task-number: PYSIDE-487 Change-Id: Ie10885f74168821d0307e91b6f1f7f3f30dd074b Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* siboken/Typesystem: Replace double used for versions by QVersionNumberFriedemann Kleint2018-03-201-38/+60
| | | | | | | | | | | | | - Change TypeSystemEntry::m_version from double to QVersionNumber. - Determine version at the beginning of the start element processing of the parser and use that. - Remove AddedFunction::m_version which is not needed. - Remove unused parameter double vr from AbstractMetaBuilderPrivate::translateType(). Change-Id: I2941667ba565f8c11aa0c14446ec7d6934da99dc Reviewed-by: Christian Tismer <tismer@stackless.com>
* Type system: Add attribute indicating C++ 11 enum classesFriedemann Kleint2018-02-281-4/+11
| | | | | | | | | | | | | Introduce enumeration for the type to EnumTypeEntry which can be specified by the boolean "class" attribute. For the enum classes, the value names need to be qualified by the enum name to match the C++ API. For the C++ generator, add an overload to Shiboken::createScopedEnumItem() that takes a PyTypeObject and add the enum items to the enum so that the name is in the enum scope. Change-Id: Ia0e469d13b08c196b9ddd965b9cf3cc62a38630b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken: Remove unused code related to enumerationsFriedemann Kleint2018-02-281-13/+0
| | | | | | | | Remove class struct EnumValueRedirection and add explanatory comment to EnumValueTypeEntry. Change-Id: Ic4665436f301943805c7985188bc41c4ad3e8336 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Type system parser: Refactor convertBoolean()Friedemann Kleint2018-02-281-9/+10
| | | | | | | | Turn it into a static helper and use QString::compare() to avoid the call to toLower(). Change-Id: Ifc10a7e8b5df4df80ee23135e32aea34ed72d295 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Type system parser: Introduce QStringLiteral for attribute valuesFriedemann Kleint2018-02-281-29/+34
| | | | | | | Avoid QString allocations for them. Change-Id: Ia55fba30f790a938900e7b5217daeaa6098beaf6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken: replace first()/last() by constFirst/constLast()Friedemann Kleint2018-01-171-5/+4
| | | | | | | | Fix clazy warnings about possibly detaching containers. Change-Id: I3c3a229de5e0c71f17c1f26273e1b0be3b0d7e81 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken: Fix some clazy warningsFriedemann Kleint2018-01-171-10/+10
| | | | | | | | | | | | - Mixing const/non-const iterators - Do not use operator[] on temporaries of type QVector - Remove unused nontrivial variables - Add Q_FALLTHROUGH() - Potential detach in range-based for Change-Id: I89391fdda616f119eadd7de529eb6cee69343f85 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Refactor typesystem modification structsFriedemann Kleint2017-12-051-64/+19
| | | | | | | | | | | - Use member initialization where possible - Make constructors explicit - Remove unused version attributes, unused comparison operators of FunctionModification and unused struct ExpensePolicy - Rearrange members to minimize Clang warnings about padding Change-Id: I1423f120b2117237c2674cdbb6d06923c842999f Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Cleanup of the TypeEntry hierarchyFriedemann Kleint2017-12-041-0/+295
| | | | | | | | | | | Use member initialization where possible. Move constructors/destructors of classes in hierarchies out of line (fixing Clang warnings about classes having no virtual out of line methods). Add override and move virtual functions out of line. Remove unused method ComplexTypeEntry *ComplexTypeEntry::copy(). Change-Id: Ie4a6c30cb0c99be35697f29ebe407b327079222a Reviewed-by: Christian Tismer <tismer@stackless.com>
* shikoben2: Extend type system path resolutionFriedemann Kleint2017-11-031-4/+17
| | | | | | | | | | | | - Remove stripping of directory components from the file names so that for example QtCore/typesystem_core.xml can also be resolved via type system path. - In addition, pass in the path of the current file being parsed so that for example typesystem_core_x11.xml is found from the directory of typesystem_core.xml while parsing Change-Id: Id10aafaf21750aa87460ccfe9ee3c3764086eda6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Typesystem parser: Look up external injected code in typesystem pathFriedemann Kleint2017-09-151-2/+3
| | | | | | | | | | | | | | Make TypeDatabase::modifiedTypesystemFilepath() public and add parameter preventing it from stripping the path so that it can handle 'glue/snippet.cpp' correctly. This removes the need to run shiboken with the working directory set to the type system file path in order to find the external injected code snippets for documentation generation. Task-number: PYSIDE-363 Change-Id: Ic61cc1d1187e326e5255b29759a9d42e27ebd8d4 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Refactor TypeEntry::isCppPrimitive()Friedemann Kleint2017-08-291-13/+18
| | | | | | | | | Introduce a helper function returning a sorted string vector to avoid converting each type string to a QByteArray. Change-Id: If9036d6251f5cc8d83ae13c8b5c3f731a6738657 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* FunctionModification: Make it possible to specify a regular expressionFriedemann Kleint2017-08-291-6/+33
| | | | | | | | | It should make it easier to specify the <array> modifications for GL functions. Task-number: PYSIDE-516 Change-Id: Ieb2e540f61785d13ee46a196a18d03b311d308e1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add new <array> argument modification indicating array usageFriedemann Kleint2017-08-031-2/+11
| | | | | | | | | | | | The modification can be used to indicate that for example int* is meant to be used as int[]. This is reflected in the NativePointerAsArrayPattern usage pattern of AbstractMetaType. Task-number: PYSIDE-354 Task-number: PYSIDE-516 Change-Id: Icaeb3cce4be9ce06caa2cab628d4e8fc1b684819 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Port the suppression mechanism to use QRegularExpressionFriedemann Kleint2017-06-091-5/+10
| | | | | Change-Id: I686308207c03de2216cd6a5143b2c66f3014a896 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* move everying into sources/shiboken2 (5.9 edition)Oswald Buddenhagen2017-05-221-0/+2737
in preparation for a subtree merge. this should not be necessary to do in a separate commit, but git is a tad stupid about following history correctly without it.