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



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>

Attachment: signature.asc
Description: This is a digitally signed message part



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