add an 'v != null' assertion to avoid GLib Critical error :)

2015-01-29 17:42 GMT+01:00 Guillaume Poirier-Morency <
[email protected]>:

> Le jeudi 29 janvier 2015 à 16:58 +0100, yannick inizan a écrit :
> > the old safe method :
> >
> >
> > public static void main (string[] args) {
> > Value? v = "toto";
> > Value val = {};
> > val.init (v.type());
> > v.copy (ref val);
> > print ("%s\n", (string)val);
> > }
> >
> >
> > p.s. : sorry for last message (*$£% gmail)
> >
> > 2015-01-29 16:48 GMT+01:00 Guillaume Poirier-Morency
> > <[email protected]>:
> >         Le jeudi 29 janvier 2015 à 15:30 +0100, yannick inizan a
> >         écrit :
> >         > Vala translate your cast to a get_<type> function of your
> >         value.
> >         >
> >         > ex:
> >         > Value v = "toto";
> >         > var val = (string)v; //equals to 'var val = v.get_string();'
> >         >
> >         > so (Value)my_val is impossible because GLib.Value doesn't
> >         have a
> >         > get_value function.
> >         >
> >         > 2015-01-29 15:16 GMT+01:00 Guillaume Poirier-Morency
> >         > <[email protected]>:
> >         >         I am working on Valum, a web micro-framework written
> >         in Vala
> >         >         https://github.com/antono/valum
> >         >
> >         >         valac is generating very strange code that doesn't
> >         compile.
> >         >
> >         >         Part of the framework is about offering facilities
> >         to push
> >         >         arbitrary
> >         >         values into CTPL template environment.
> >         >
> >         >         At some point, I try to case a Value? to a non-null
> >         Value (I
> >         >         have of
> >         >         course tested the null case, I just want it to pass
> >         under
> >         >         --enable-experimental-non-null)
> >         >
> >         >                 vala --version
> >         >
> >         >                 Vala 0.26.1
> >         >
> >         >         Here's the use case:
> >         >
> >         >                 Value? v;
> >         >                 var val = (Value) v;
> >         >
> >         >         The error:
> >         >
> >         >
> >         >                 lvalue required as unary '&' operand
> >         >
> >         >         I attached the full log and the bug is easily
> >         reproducible
> >         >         (the sample
> >         >         does it).
> >         >
> >         >         --
> >         >         Guillaume Poirier-Morency
> >         <[email protected]>
> >         >
> >         >         _______________________________________________
> >         >         vala-list mailing list
> >         >         [email protected]
> >         >         https://mail.gnome.org/mailman/listinfo/vala-list
> >         >
> >         >
> >         >
> >
> >
> >         Thanks for the answer!
> >
> >         That kind of code should be detected by Vala compiler as an
> >         error.
> >
> >         What approach would you recommend to cast "Value?" to
> >         "Value" ?
> >
> >         It's not that bad if it is not yet possible, but I would
> >         really like to
> >         build the whole projet with --enable-experimental-non-null ;)
> >
> >
> >         --
> >         Guillaume Poirier-Morency <[email protected]>
> >
> >
>
> Great! That should do the trick for now :)
> --
> Guillaume Poirier-Morency <[email protected]>
>
_______________________________________________
vala-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to