string method_name = "get_%s_type".printf (type_parameter.name.ascii_down ());
var cast_self = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_type_get_function (iface)));
- cast_self.add_argument (new CCodeIdentifier ("self"));
+ cast_self.add_argument (get_this_cexpression ());
var function_call = new CCodeFunctionCall (new CCodeMemberAccess.pointer (cast_self, method_name));
- function_call.add_argument (new CCodeIdentifier ("self"));
+ function_call.add_argument (get_this_cexpression ());
return function_call;
}
string method_name = "get_%s_destroy_func".printf (type_parameter.name.ascii_down ());
var cast_self = new CCodeFunctionCall (new CCodeIdentifier (get_ccode_type_get_function (iface)));
- cast_self.add_argument (new CCodeIdentifier ("self"));
+ cast_self.add_argument (get_this_cexpression ());
var function_call = new CCodeFunctionCall (new CCodeMemberAccess.pointer (cast_self, method_name));
- function_call.add_argument (new CCodeIdentifier ("self"));
+ function_call.add_argument (get_this_cexpression ());
return function_call;
}
objects/interface-inner-types.vala \
objects/interfaces.vala \
objects/interface-abstract-async-override.vala \
+ objects/interface-async-captured-generic.vala \
objects/interface-generics.vala \
objects/interface-property-base-access.vala \
objects/interface-property-base-impl.vala \
--- /dev/null
+[GenericAccessors]
+interface IFoo<G> : Object {
+ public async void bar (G g) {
+ assert (typeof (G) == typeof (string));
+ assert (g == "foo");
+ }
+}
+
+class Foo : Object, IFoo<string> {
+}
+
+void main () {
+ var foo = new Foo ();
+ foo.bar.begin ("foo");
+}