comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Type invariants and private extensions?
Date: Mon, 2 Oct 2017 18:16:16 -0500
Date: 2017-10-02T18:16:16-05:00	[thread overview]
Message-ID: <oquhc0$j1g$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: op6v4m$tmm$1@gioia.aioe.org

"Victor Porton" <porton@narod.ru> wrote in message 
news:op6v4m$tmm$1@gioia.aioe.org...
> Egil H H wrote:
>
>> On Monday, September 11, 2017 at 10:48:46 PM UTC+2, Victor Porton wrote:
>>> > The Invariant will then be inherited by all derived types
>>>
>>> It is not what I want. I want different invariants for different derived
>>> types.
>>>
>>
>> You can add new invariants in addition to the ones inherited
>
> I cannot: the compiler gives an error:
>
> package P is
>
>  type T is tagged private;
>
> private
>
>  type T is tagged null record;
>
> end P;
>
> with P; use P;
>
> package P1 is
>
>  type T1 is new T with null record
>    with Type_Invariant => True;
>
> end P1;

Right, but you can define a private extension:

package P1 is

    type T1 is new T with private;

private

    type T1 is new T with null record
       with Type_Invariant => True;

 end P1;

The semantics is the same as with a plain record extension, and the 
invariant makes more sense.

                                      Randy.



      parent reply	other threads:[~2017-10-02 23:16 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-11 19:51 Type invariants and private extensions? Victor Porton
2017-09-11 20:00 ` Egil H H
2017-09-11 20:48   ` Victor Porton
2017-09-11 21:19     ` Egil H H
2017-09-11 21:27       ` Victor Porton
2017-09-11 21:49         ` Egil H H
2017-09-11 22:00           ` Victor Porton
2017-09-11 22:06             ` Egil H H
2017-09-12  7:30             ` Dmitry A. Kazakov
2017-09-11 22:00         ` Jere
2017-09-11 22:02           ` Victor Porton
2017-09-12 18:26             ` Jeffrey R. Carter
2017-09-12 18:54               ` Victor Porton
2017-09-12 19:56                 ` Jeffrey R. Carter
2017-09-12 20:08                   ` Victor Porton
2017-09-12 22:34                     ` Shark8
2017-09-12 22:59                       ` Victor Porton
2017-09-13  4:21                         ` Jere
2017-09-13  4:28                           ` Jere
2017-09-13  4:34                             ` Jere
2017-09-14 13:52                           ` Victor Porton
2017-09-15  0:48                             ` Jere
2017-09-16 14:22                               ` Victor Porton
2017-09-14  7:28                         ` Shark8
2017-09-14 13:56                           ` Victor Porton
2017-09-14 13:58                             ` Victor Porton
2017-09-11 22:48         ` Shark8
2017-10-02 23:16         ` Randy Brukardt [this message]
replies disabled

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