summaryrefslogtreecommitdiff
path: root/giscanner/maintransformer.py
diff options
context:
space:
mode:
Diffstat (limited to 'giscanner/maintransformer.py')
-rw-r--r--giscanner/maintransformer.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/giscanner/maintransformer.py b/giscanner/maintransformer.py
index 29d9229d..a921ad47 100644
--- a/giscanner/maintransformer.py
+++ b/giscanner/maintransformer.py
@@ -24,7 +24,7 @@ from . import message
from .annotationparser import (TAG_VFUNC, TAG_SINCE, TAG_DEPRECATED, TAG_RETURNS,
TAG_ATTRIBUTES, TAG_RENAME_TO, TAG_TYPE,
TAG_UNREF_FUNC, TAG_REF_FUNC, TAG_SET_VALUE_FUNC,
- TAG_GET_VALUE_FUNC)
+ TAG_GET_VALUE_FUNC, TAG_VALUE)
from .annotationparser import (OPT_ALLOW_NONE, OPT_ARRAY, OPT_ATTRIBUTE,
OPT_ELEMENT_TYPE, OPT_IN, OPT_INOUT,
OPT_INOUT_ALT, OPT_OUT, OPT_SCOPE,
@@ -238,6 +238,8 @@ usage is void (*_gtk_reserved1)(void);"""
node.set_value_func = tag.value if tag else None
tag = block.get(TAG_GET_VALUE_FUNC)
node.get_value_func = tag.value if tag else None
+ if isinstance(node, ast.Constant):
+ self._apply_annotations_constant(node)
return True
def _adjust_container_type(self, parent, node, options):
@@ -788,6 +790,14 @@ usage is void (*_gtk_reserved1)(void);"""
self._apply_annotations_param(signal, param, tag)
self._apply_annotations_return(signal, signal.retval, block)
+ def _apply_annotations_constant(self, node):
+ block = self._blocks.get(node.ctype)
+ if not block:
+ return
+ tag = block.get(TAG_VALUE)
+ if tag:
+ node.value = tag.value
+
def _pass_read_annotations2(self, node, chain):
if isinstance(node, ast.Function):
self._apply_annotations2_function(node, chain)