An array with size set by a constant variable(!) might have a different
size each time the declaration is encountered. So we need to
re-evaluate the size each time.
We currently re-evaluate the size only if it is zero.
So for numerical-constant sized arrays, evaluate size during parsing.
For other arrays, re-evaulate each time using a new prepare_type method.