Re: [Vala] Bad C code generation (lvalue required as unary '&' operand)



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 <
guillaumepoiriermorency gmail com>:

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
<guillaumepoiriermorency gmail com>:
        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 <guillaumepoiriermorency gmail com>

        _______________________________________________
        vala-list mailing list
        vala-list gnome org
        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 <guillaumepoiriermorency gmail com>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]