Thank you Andre. Now all is clear.

BR, Vitaly Kirsanov
skype: vkirsan

2014-11-07 18:31 GMT+03:00 Andre Masella <an...@masella.name>:

> 1) You can't use `override` for methods in interfaces, only for overriding
> base classes.
>
> 2) The contents of `foo` are not in scope for `bar`, only they inherited
> members because they are now part of `bar`. So `Type` in `bar` is
> `GLib.Type` not `foo.Type`.
>
> public interface foo
> {
>     public enum Type
>     {
>         a, b
>     }
>
>     public abstract Type get_type();
> }
>
> public class bar : foo
> {
>      foo.Type t = foo.Type.a;
>      public new foo.Type get_type() { return t; }
> }
>
> 3) You *really* *really* *really* don't want to name this method
> `get_type` and you also don't want to name anything `Type` as these are
> used underneath by GLib. The “fixed” version above will generate the
> following broken C:
>
> GType foo_get_type (void) G_GNUC_CONST;
> fooType foo_get_type (foo* self);
>
>
_______________________________________________
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to