[M3devel] range analysis?

Tony Hosking hosking at cs.purdue.edu
Tue May 24 04:04:40 CEST 2011


Element type.

On May 23, 2011, at 6:55 PM, Hendrik Boom wrote:

> On Mon, May 23, 2011 at 02:45:37PM -0400, Tony Hosking wrote:
>> 
>> On May 23, 2011, at 2:26 PM, Rodney M. Bates wrote:
>> 
>>> This needs more thought.  On the one hand, 2.2.3 on array types allows
>>> the explicit element type in either kind of array type definition to
>>> be empty, unlike the way 2.2.4 on record types requires a field type
>>> to be nonempty.
>> 
>> I note that an array type of empty elements is itself empty and cannot be instantiated.
>> 
>>> On the other hand, 2.2 has a general prohibition against declaring a
>>> variable of empty type, and it is all over the language spec that the
>>> elements of arrays are "variables".  The general definition of variable
>>> in 2.1 would apply to array elements.  Thre are numerous places that
>>> describe things that can be done with a variable that we all informally
>>> know can be done to an element, as it should be and we all have done
>>> many times.  Moreover, 2.2.3 says in the first paragraph that the
>>> elements are variables.
>> 
>> So, it seems to me that we could simply disallow empty array elements and be within spec.
> 
> You mean the array elements are empty?  or that the element type is 
> empty?  These are very different concepts.




More information about the M3devel mailing list