]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
dova: Fix nested generics
authorJürg Billeter <j@bitron.ch>
Fri, 9 Jul 2010 14:35:35 +0000 (16:35 +0200)
committerJürg Billeter <j@bitron.ch>
Fri, 9 Jul 2010 14:35:35 +0000 (16:35 +0200)
codegen/valadovabasemodule.vala

index 5961d6e1991166cd63281f9aa9d4527a3a22ddb9..49a7759a874a5cd1d01c4fe010770215f6ce179b 100644 (file)
@@ -1763,17 +1763,7 @@ internal class Vala.DovaBaseModule : CCodeModule {
 
        public void add_generic_type_arguments (CCodeFunctionCall ccall, List<DataType> 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));
                }
        }