comp.lang.ada
 help / color / mirror / Atom feed
From: "J-P. Rosen" <rosen@adalog.fr>
Subject: Re: Inferring array index type from array object
Date: Wed, 23 Jun 2010 11:03:17 +0200
Date: 2010-06-23T11:03:17+02:00	[thread overview]
Message-ID: <hvsikv$3a7$1@news.eternal-september.org> (raw)
In-Reply-To: <1305oqccr1h2t$.x33x4oxwd84d$.dlg@40tude.net>

Dmitry A. Kazakov a �crit :
>> I would like to declare I as a free variable instead and I would
>> expect some symmetry in the language by doing this:
>>
>> I : S'Range := S'First;
> 
> subtype Index_Span is Integer range S'Range;
> I : Index_Span := S'First;
Or simply:
I : Positive range S'Range;

>> 1. What is the standard justification for this assymetry?
This is a simplification of loops, to avoid some typing to the user.
Think of it the other way round: since a for loop involves the
declaration of an object, the type should always be explicitely declared
(a coding rule that I apply - of course checkable by AdaControl):

for I in positive range 1..10 loop ...
for I in positive range S'Range loop ...

So it is really symetrical, except that in the case of a loop, you  are
allowed to "simplify" by omitting the "<type> range" part - forcing the
compiler to deduce the type from the range, which is not a good idea IMHO.

>> 2. Is it possible to declare the index variable without hardcoding the
>> index type (that is, to infer it from the array object)?
> 
There is no point in doing this, since the type of the array /is/
hardcoded anyway. You could allow the same "simplification" as for
loops, but as mentionned above, I prefer the other way round: always
explicitely give the type name.

-- 
---------------------------------------------------------
           J-P. Rosen (rosen@adalog.fr)
Visit Adalog's web site at http://www.adalog.fr



  reply	other threads:[~2010-06-23  9:03 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-23  7:30 Inferring array index type from array object Maciej Sobczak
2010-06-23  8:01 ` Dmitry A. Kazakov
2010-06-23  9:03   ` J-P. Rosen [this message]
2010-06-23 12:24     ` Georg Bauhaus
2010-06-23 12:52       ` J-P. Rosen
2010-06-23 19:09         ` Simon Wright
2010-06-24  7:25           ` Georg Bauhaus
2010-06-23 14:38     ` Robert A Duff
2010-06-23 15:17       ` J-P. Rosen
2010-06-23 17:17         ` Robert A Duff
2010-06-24  6:16           ` J-P. Rosen
2010-06-23 12:13   ` Niklas Holsti
2010-06-23 14:27     ` Peter C. Chapin
2010-06-23 20:24       ` Niklas Holsti
2010-06-23 16:33     ` Warren
2010-06-23 17:49       ` Dmitry A. Kazakov
2010-06-23 18:45         ` Warren
2010-06-23 20:39       ` Niklas Holsti
2010-06-28 13:44         ` Warren
2010-06-28 22:18           ` Niklas Holsti
2010-06-29  1:49             ` Adam Beneschan
2010-06-29  2:10               ` (see below)
2010-06-29 16:56             ` Warren
2010-06-29 17:50               ` John B. Matthews
2010-06-29 19:31                 ` Warren
2010-06-29 20:06                   ` Jeffrey R. Carter
2010-06-29 20:16                     ` Warren
2010-06-29 20:22                   ` Adam Beneschan
2010-06-29 20:39                     ` Dmitry A. Kazakov
2010-06-29 20:55                     ` Warren
2010-06-29 21:00                       ` Warren
2010-06-29 21:47                         ` John B. Matthews
2010-06-29 21:52                         ` Damien Carbonne
2010-06-29 22:22                         ` Adam Beneschan
2010-06-30 16:43                           ` Warren
2010-06-29 21:18                       ` Jeffrey R. Carter
2010-06-30  5:01                     ` Simon Wright
2010-06-30 14:29                       ` Adam Beneschan
2010-06-29 20:28                   ` Damien Carbonne
2010-06-29 21:20                   ` John B. Matthews
2010-06-23 13:12 ` Gautier write-only
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox