[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