Hi,
this sort of problems existed for ever in vala, another example:
// ---- cut here ----
class Test
{
int one_method()
{
return 0;
}
}
class TestOne
{
int method()
{
return 1;
}
}
// ---- cut here ----
My way of avoiding such clashes is to know how vala names are
translated to C names ;)
best regards,
AW.
Hi,
I have a simple Vala program
public struct Struct { string name; }
public enum Type { STRUCT }
It looks fine, but if you try to compile it fails with following error:
--------------------------------
$ CC=clang valac a.vala
/usr/local/google/home/anatol/sources/learning/vala/a.vala.c:22:2:
error: expected '}'
TYPE_STRUCT
^
/usr/local/google/home/anatol/sources/learning/vala/a.vala.c:11:21:
note: instantiated from:
#define TYPE_STRUCT (struct_get_type ())
^
/usr/local/google/home/anatol/sources/learning/vala/a.vala.c:21:15:
note: to match this '{'
typedef enum {
^
/usr/local/google/home/anatol/sources/learning/vala/a.vala.c:75:38:
error: initializer element is not a compile-time
constant
static const GEnumValue values[] = {{TYPE_STRUCT,
"TYPE_STRUCT", "struct"}, {0, NULL, NULL}};
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 diagnostics generated.
error: cc exited with status 256
Compilation failed: 1 error(s), 0 warning(s)
----------------------------------
The problem here a name clash in generated Vala code - TYPE_STRUCT
both generated as type of Struct
#define TYPE_STRUCT (struct_get_type ())
and as a enum value
typedef enum {
TYPE_STRUCT
} Type;
what is the best way to avoid such clashes? Is it possible to change
enum names to something else. I can change enum name from Type to
something else e.g. RecordType, but I would like to know if there is a
better solution.
_______________________________________________
vala-list mailing list
vala-list gnome org
http://mail.gnome.org/mailman/listinfo/vala-list
-- Mój klucz publiczny o identyfikatorze 1024D/E12C5A4C znajduje się na serwerze hkp://keys.gnupg.net My public key with signature 1024D/E12C5A4C is on the server hkp://keys.gnupg.net
Attachment:
signature.asc
Description: PGP signature