> From: Steef Hegeman <steefhege...@hotmail.com>
> Sent: Thursday, 23 July 2015, 20:56
> Subject: Re: [Vala] Variable-length array in struct and initializing an array 
> of such structs
> 
> Maybe I didn't word myself properly: the array I want to be 
> "dynamic" is
> the array inside the structs (called "array" in the examples). Some
> functions are bound to two keys, some to three etc. "Dynamic" in this
> case meaning I want them to be of variable length at compile time. At
> run-time I'm not doing anything with their lengths.
> 
> For example, as you can see in example_1 I provided in my previous
> message, the array in one struct contains {1, 2, 3} (three elements)
> while the other array contains {2, 3} (two elements).

Hmmm, I have tried your example and changed it so the arrays are the same length
and the same error occurs. So I think the problem is initializing a
nested array within a struct within an array rather than because they are
different lengths.

As an aside, I usually think dynamic is run-time and static is compile time.
So, for example, we talk of statically typed computer languages and dynamically 
typed languages. I imagine, however, you already knew that.



> In the end it comes down to an issue of merely semantical value, but I
> was wondering whether I should file a bug report for it or if it's just
> not allowed in Vala. It just bugs me that example_1 doesn't work, while
> it does work if I initialize the arrays outside of the struct
> initialization (see attachment).
Yes, the semantics are nice when initializing the array inline.
As you are getting a failed assertion from the compiler's codegen
array module then this would be a bug. The assertions are there to 
check for invariant conditions of course. On the other hand I
don't know what the compiler should do instead. The squiggly
braces can signify either a struct or an array which can be 
ambiguous for the parser. So either a better error or get the
semantic analyser to make it right?

For your use case would a hash map ( 
https://wiki.gnome.org/Projects/Vala/GeeSamples#Map_Example ) be better? 

Each key press sequence can be represented as a string and this 
would then map to a delegate containing the relevant function.

All the best,

Al
_______________________________________________
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to