comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Discriminants of tagged types
Date: Wed, 27 Oct 2010 09:44:17 -0400
Date: 2010-10-27T09:44:17-04:00	[thread overview]
Message-ID: <wcc4oc7da32.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 14314714-e92c-4036-9cbb-da8e72489261@h7g2000yqn.googlegroups.com

Maciej Sobczak <see.my.homepage@gmail.com> writes:

> GNAT says that discriminants of tagged types cannot have default
> values.

Well, Ada says that.  GNAT is just following orders.  ;-)

> but this is an error:
>
>    type T (A : Integer := 0) is tagged null record;

We tried very hard during Ada 9X to allow this, but
we kept running into semantic difficulties, which required
more and more complicated rules to fix.  One day,
Tucker said to me (or I said to Tucker -- I don't
remember which), let's just outlaw this.  We both
agreed it was a big simplification.

Sorry, I don't remember in detail what the semantic
difficulties were.  Ludovic's explanation seems
as good as any.

I believe Ada 2012 will allow defaults for LIMITED
tagged types, and I think (not sure) it's already
implemented in GNAT under -gnat2012 mode.  The limited case
is easy, because the weird rule that says "defaulted
discriminants can change" isn't true for limited
types, because assignment statements are forbidden.

- Bob



  parent reply	other threads:[~2010-10-27 13:44 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-27 12:16 Discriminants of tagged types Maciej Sobczak
2010-10-27 12:34 ` Ludovic Brenta
2010-10-27 13:19   ` Dmitry A. Kazakov
2010-10-27 13:52     ` Robert A Duff
2010-10-27 14:12       ` Dmitry A. Kazakov
2010-10-27 13:44 ` Robert A Duff [this message]
2010-10-27 15:06   ` Adam Beneschan
2010-10-27 15:58     ` Yannick Duchêne (Hibou57)
2010-10-27 16:35       ` Vinzent Hoefler
2010-10-27 17:58       ` J-P. Rosen
2010-10-27 20:18         ` Yannick Duchêne (Hibou57)
2010-10-27 20:26       ` Adam Beneschan
2010-10-27 22:07         ` Yannick Duchêne (Hibou57)
2010-10-27 22:42           ` Adam Beneschan
2010-10-27 15:13   ` Maciej Sobczak
2010-10-27 16:02     ` Yannick Duchêne (Hibou57)
2010-10-27 21:13       ` Maciej Sobczak
2010-10-27 21:23         ` Ludovic Brenta
2010-10-28  8:38           ` Maciej Sobczak
2010-10-27 21:25         ` Vinzent Hoefler
2010-10-28  7:53         ` Dmitry A. Kazakov
2010-10-28  8:50           ` Maciej Sobczak
2010-10-28 10:28             ` Dmitry A. Kazakov
2010-10-28 17:48             ` Yannick Duchêne (Hibou57)
2010-10-29 18:59             ` Vinzent Hoefler
2010-10-30 21:05               ` Maciej Sobczak
2010-10-30 21:21                 ` Vinzent Hoefler
2010-10-30 22:01                   ` Yannick Duchêne (Hibou57)
2010-10-31 16:20                   ` Maciej Sobczak
2010-10-31 17:04                     ` Yannick Duchêne (Hibou57)
2010-10-31 18:36                     ` Shark8
2010-10-31 21:06                       ` Maciej Sobczak
2010-11-01  0:44                         ` Shark8
2010-11-01  9:41                           ` Maciej Sobczak
2010-10-27 16:06     ` Robert A Duff
2010-10-27 16:34       ` Yannick Duchêne (Hibou57)
2010-10-27 21:05       ` Maciej Sobczak
2010-10-28  0:35         ` Robert A Duff
2010-10-28  8:55           ` Maciej Sobczak
2010-10-27 21:28       ` Simon Wright
2010-10-27 13:54 ` J-P. Rosen
replies disabled

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