aboutsummaryrefslogtreecommitdiffstats
path: root/generator/shibokengenerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'generator/shibokengenerator.cpp')
-rw-r--r--generator/shibokengenerator.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/generator/shibokengenerator.cpp b/generator/shibokengenerator.cpp
index 8be8964e8..697c89e58 100644
--- a/generator/shibokengenerator.cpp
+++ b/generator/shibokengenerator.cpp
@@ -1660,12 +1660,14 @@ Generator::Options ShibokenGenerator::getConverterOptions(const AbstractMetaType
Options flags;
const TypeEntry* type = metaType->typeEntry();
bool isCStr = isCString(metaType);
- if (metaType->indirections() && !isCStr)
+ if (metaType->indirections() && !isCStr) {
flags = ExcludeConst;
- else if (type->isPrimitive() && !isCStr)
+ } else if (metaType->isContainer()
+ || (type->isPrimitive() && !isCStr)
+ // const refs become just the value, but pure refs must remain pure.
+ || (type->isValue() && metaType->isConstant() && metaType->isReference())) {
flags = ExcludeConst | ExcludeReference;
- else if (type->isValue() && metaType->isConstant() && metaType->isReference())
- flags = ExcludeConst | ExcludeReference; // const refs become just the value, but pure refs must remain pure.
+ }
return flags;
}