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]>
test.vala:3.1-1.9: warning: main blocks are experimental
test.vala:3.5-3.19: warning: local variable `val' declared but never used
var val = (Value) v;
^^^^^^^^^^^^^^^
In file included from /usr/include/glib-2.0/gobject/gobject.h:24:0,
from /usr/include/glib-2.0/gobject/gbinding.h:29,
from /usr/include/glib-2.0/glib-object.h:23,
from /home/guillaume/test.vala.c:6:
/home/guillaume/test.vala.c: In function ‘_vala_main’:
/home/guillaume/test.vala.c:21:18: erreur: lvalue required as unary ‘&’ operand
if (G_IS_VALUE (&((GValue) (*_tmp0_)))) {
^
/usr/include/glib-2.0/gobject/gtype.h:1941:58: note: in definition of macro
‘_G_TYPE_CHV’
#define _G_TYPE_CHV(vl) (g_type_check_value ((GValue*) vl))
^
/usr/include/glib-2.0/gobject/gvalue.h:50:29: note: in expansion of macro
‘G_TYPE_CHECK_VALUE’
#define G_IS_VALUE(value) (G_TYPE_CHECK_VALUE (value))
^
/home/guillaume/test.vala.c:21:6: note: in expansion of macro ‘G_IS_VALUE’
if (G_IS_VALUE (&((GValue) (*_tmp0_)))) {
^
In file included from /usr/include/glib-2.0/gobject/gobject.h:25:0,
from /usr/include/glib-2.0/gobject/gbinding.h:29,
from /usr/include/glib-2.0/glib-object.h:23,
from /home/guillaume/test.vala.c:6:
/home/guillaume/test.vala.c:22:40: erreur: lvalue required as unary ‘&’ operand
g_value_init (&_tmp1_, G_VALUE_TYPE (&((GValue) (*_tmp0_))));
^
/usr/include/glib-2.0/gobject/gvalue.h:59:43: note: in definition of macro
‘G_VALUE_TYPE’
#define G_VALUE_TYPE(value) (((GValue*) (value))->g_type)
^
/home/guillaume/test.vala.c:23:17: erreur: lvalue required as unary ‘&’ operand
g_value_copy (&((GValue) (*_tmp0_)), &_tmp1_);
^
error: cc exited with status 256
Compilation failed: 1 error(s), 2 warning(s)
signature.asc
Description: This is a digitally signed message part
_______________________________________________ vala-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/vala-list
