summaryrefslogtreecommitdiff
path: root/vapigen
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2010-04-19 02:43:25 -0700
committerEvan Nemerson <evan@coeus-group.com>2010-04-19 02:43:25 -0700
commit340285aec53d822d176443bff444c1919ce70374 (patch)
tree51c67c832b0f6a11b29444e495728c527840a279 /vapigen
parent1f50c930bf8c6902c1eea447a88e5eb87e14442d (diff)
downloadvala-340285aec53d822d176443bff444c1919ce70374.tar.gz
vapigen: support type_arguments for signal/delegate return types
Fixes bug 615837.
Diffstat (limited to 'vapigen')
-rw-r--r--vapigen/valagidlparser.vala10
1 files changed, 10 insertions, 0 deletions
diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala
index a309e9ee5..3f25d23f1 100644
--- a/vapigen/valagidlparser.vala
+++ b/vapigen/valagidlparser.vala
@@ -305,6 +305,11 @@ public class Vala.GIdlParser : CodeVisitor {
if (eval (nv[1]) == "1") {
return_type.value_owned = true;
}
+ } else if (nv[0] == "type_arguments") {
+ var type_args = eval (nv[1]).split (",");
+ foreach (string type_arg in type_args) {
+ return_type.add_type_argument (get_type_from_string (type_arg));
+ }
} else if (nv[0] == "instance_pos") {
cb.cinstance_parameter_position = eval (nv[1]).to_double ();
}
@@ -2248,6 +2253,11 @@ public class Vala.GIdlParser : CodeVisitor {
if (eval (nv[1]) == "1") {
sig.return_type.value_owned = true;
}
+ } else if (nv[0] == "type_arguments") {
+ var type_args = eval (nv[1]).split (",");
+ foreach (string type_arg in type_args) {
+ sig.return_type.add_type_argument (get_type_from_string (type_arg));
+ }
}
}
}