Adriaan van Os wrote:
Yes, that is what the current implementation does, but the following declaration shows the absurdity of it:
int9 = -1..0 attribute( size = 9);
This declares a type with a range -256..255. Yes, syntactically and formally it is correct, but semantically it is nonsense to write -1..0 where you mean -256..255.
So, I argue again that, semantically, in
int16 = integer attribute( size = 16);
"integer" should not be regarded as a type identifer but as a placeholder for the-family-of-signed-integral-numbers.
I do not understand what is your point here. Do you argue "in abstract" or maybe you have some concrete proposal what to change in GPC?
Concerning proposals: we can make `int9 = -1..0 attribute( size = 9);' illegal (or maybe ignore size attribute here as we do in other places).
OTOH writing "should not be regarded ..." is _not_ a proposal. The compiler has to follow formal rules and change means that we have new rules. I do not see how to convert what you wrote into reasonable rules (the example I gave show _some_ of the difficulties).