return new CCodeIdentifier ("%s_%s_parent_iface".printf (get_ccode_lower_case_name (current_class), get_ccode_lower_case_name (iface)));
}
- if (!current_class.is_a (iface)) {
- Report.warning (current_class.source_reference, "internal: `%s' is not a `%s'".printf (current_class.get_full_name (), iface.get_full_name ()));
- }
-
var vcast = new CCodeFunctionCall (new CCodeIdentifier ("G_TYPE_INSTANCE_GET_INTERFACE"));
vcast.add_argument (get_this_cexpression ());
vcast.add_argument (new CCodeIdentifier (get_ccode_type_id (iface)));
objects/interface-abstract-async-override.vala \
objects/interface-async-captured-generic.vala \
objects/interface-generics.vala \
+ objects/interface-parameter-nowrapper.vala \
objects/interface-property-base-access.vala \
objects/interface-property-base-impl.vala \
objects/interface-property-delegate.vala \
--- /dev/null
+interface IFoo {
+ [NoWrapper]
+ public abstract int foo ();
+}
+
+class Bar {
+ public Bar (IFoo foo) {
+ assert (foo.foo () == 42);
+ }
+}
+
+class Foo : IFoo {
+ public int foo () {
+ return 42;
+ }
+}
+
+void main () {
+ new Bar (new Foo ());
+}