The implementation of C++ types in shiboken has some issues that block adding more advanced types:
Complexity, duplicated types
- Several types represent a C++ type: TypeInfo (Codemodel), TypeParser::Info (done. removed), AddedFunction::TypeInfo. In addition, the code-model related types are eventually used to populate AbstractMetaType
 - Parsing of type code snippets happens in several places
	
- abstractmetabuilder.cpp:64 parseTemplateType() for AddedFunction
 - AbstractMetaBuilder::translateType (reparses TypeInfo::toString() back into TypeInfo to normalize signatures, apparently)
 - AddedFunction::TypeInfo::fromSignature() for reading XML, handles only limited subset
 - ShibokenGenerator::buildAbstractMetaTypeFromString()
 
 
Representation of const
TypeInfo, AbstractMetaType only have isConstant(), which is true for const int *
which technically (and in Clang representation) is not  const, (the pointee is). It is thus not possible to differentiate from const int *const  or int *const which is truly const. This causes subtle issues:
- Some signatures for querying the function documentation do not match (doc generator)
 - No setters are generated for field types like const QWidget * (QStyleOptionViewItem)
 - Patterns for matching rejections and modifications are a bit strange ( bool volatile* instead of volatile bool *)
 
Plans
A lot of needed information is readily available from Clang. So, introducing a type which represents all the information from Clang would be useful
One issue to consider is that doc-generation (namely the creation of XQueries for the WebXML doc extraction from function signatures) requires using unresolved typedefs (GLEnum instead of unsigned).
- relates to
 - 
                    
PYSIDE-304 PySide does not make setters for fields that are a variable pointer to a constant value
-         
 - Closed
 
 -         
 - 
                    
PYSIDE-725 Shiboken should support creating bindings for explicit instantiations of template classes
-         
     - Closed
 
 -         
 
- resulted from
 - 
                    
        
        PYSIDE-363
        Fix documentation generation
    
-         
 - Closed
 
 -