aboutsummaryrefslogtreecommitdiff
path: root/find-modules/sip_generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'find-modules/sip_generator.py')
-rw-r--r--find-modules/sip_generator.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/find-modules/sip_generator.py b/find-modules/sip_generator.py
index e5e807ed..a8c164b5 100644
--- a/find-modules/sip_generator.py
+++ b/find-modules/sip_generator.py
@@ -228,7 +228,7 @@ class SipGenerator(object):
elif member.kind == CursorKind.CXX_ACCESS_SPEC_DECL:
decl = self._get_access_specifier(member, level + 1)
elif member.kind == CursorKind.TYPEDEF_DECL:
- decl = self._typedef_get(member, level + 1)
+ decl = self._typedef_get(container, member, level + 1)
elif member.kind == CursorKind.CXX_BASE_SPECIFIER:
#
# Strip off the leading "class". Except for TypeKind.UNEXPOSED...
@@ -627,7 +627,7 @@ class SipGenerator(object):
return _get_param_value(text, parameterType)
return ""
- def _typedef_get(self, typedef, level):
+ def _typedef_get(self, container, typedef, level):
"""
Generate the translation for a typedef.
@@ -637,10 +637,19 @@ class SipGenerator(object):
:return: A string.
"""
- pad = " " * (level * 4)
+ sip = {
+ "name": typedef.displayname,
+ "annotations": set(),
+ }
+
+ self.rules.typedef_rules().apply(container, typedef, sip)
- decl = pad + "typedef {} {}".format(typedef.underlying_typedef_type.spelling, typedef.displayname)
- decl += ";\n"
+ pad = " " * (level * 4)
+ if sip["name"]:
+ decl = pad + "typedef {} {}".format(typedef.underlying_typedef_type.spelling, typedef.displayname)
+ decl += ";\n"
+ else:
+ decl = pad + "// Discarded {}\n".format(SipGenerator.describe(typedef))
return decl
def _var_get(self, container, variable, level):