From: Jürg Billeter Date: Fri, 9 Jul 2010 14:35:35 +0000 (+0200) Subject: dova: Fix nested generics X-Git-Tag: 0.9.3~26 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2b0838cad45ba8873a6ecf61c7a51c017085a543;p=thirdparty%2Fvala.git dova: Fix nested generics --- diff --git a/codegen/valadovabasemodule.vala b/codegen/valadovabasemodule.vala index 5961d6e19..49a7759a8 100644 --- a/codegen/valadovabasemodule.vala +++ b/codegen/valadovabasemodule.vala @@ -1763,17 +1763,7 @@ internal class Vala.DovaBaseModule : CCodeModule { public void add_generic_type_arguments (CCodeFunctionCall ccall, List type_args, CodeNode expr, bool is_chainup = false) { foreach (var type_arg in type_args) { - if (type_arg is GenericType) { - var generic_type = (GenericType) type_arg; - string var_name = "%s_type".printf (generic_type.type_parameter.name.down ()); - if (is_in_generic_type (type_arg) && !is_chainup) { - ccall.add_argument (new CCodeMemberAccess.pointer (get_type_private_from_type ((ObjectTypeSymbol) generic_type.type_parameter.parent_symbol, new CCodeMemberAccess.pointer (new CCodeIdentifier ("this"), "type")), var_name)); - } else { - ccall.add_argument (new CCodeIdentifier (var_name)); - } - } else { - ccall.add_argument (new CCodeFunctionCall (new CCodeIdentifier ("%s_type_get".printf (type_arg.data_type.get_lower_case_cname ())))); - } + ccall.add_argument (get_type_id_expression (type_arg, is_chainup)); } }