From 51516f3399f34e77416e1fe3c87f988084346619 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 8 Jul 2010 16:10:17 +0200 Subject: [PATCH] vapigen: Add support for type_parameters for delegates Also add support for type_name for delegate parameters. --- vapigen/valagidlparser.vala | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala index e42a24e63..adcaeddf3 100644 --- a/vapigen/valagidlparser.vala +++ b/vapigen/valagidlparser.vala @@ -320,6 +320,10 @@ public class Vala.GIdlParser : CodeVisitor { } } else if (nv[0] == "instance_pos") { cb.cinstance_parameter_position = eval (nv[1]).to_double (); + } else if (nv[0] == "type_parameters") { + foreach (string type_param_name in eval (nv[1]).split (",")) { + cb.add_type_parameter (new TypeParameter (type_param_name, current_source_reference)); + } } } } @@ -405,6 +409,15 @@ public class Vala.GIdlParser : CodeVisitor { if (eval (nv[1]) == "1") { p.no_array_length = true; } + } else if (nv[0] == "type_name") { + var sym = new UnresolvedSymbol (null, eval (nv[1])); + if (param_type is UnresolvedType) { + ((UnresolvedType) param_type).unresolved_symbol = sym; + } else { + // Overwrite old param_type, so "type_name" must be before any + // other param type modifying metadata + p.parameter_type = param_type = new UnresolvedType.from_symbol (sym, return_type.source_reference); + } } } } -- 2.47.3