comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Question on variant/discriminated records
Date: Thu, 31 Dec 2020 16:03:54 +0100	[thread overview]
Message-ID: <rskp8n$1feq$1@gioia.aioe.org> (raw)
In-Reply-To: 3c1a2fe9-e8f2-401f-870d-aecd9e0f9c69n@googlegroups.com

On 2020-12-31 11:38, reinert wrote:

> Assume the following program and change "y1" to "y".
> 
> procedure test3 is
>   type options1_Type is (a,b,c);
>   type rec1_Type(option1 : options1_Type) is
>     record
>        x : Float;
>        case option1 is
>          when a => null;
>          when b => y : float;
>          when c => y1,z : float;
>        end case;
>     end record;
> begin
>     null;
> end test3;
> 
> My compiler does not like this change.  I find it not natural to invent
> a new name "y1" instead of "y". What should I do?

Use nested choice:

    type rec1_Type (option1 : options1_Type) is record
       x : Float;
       case option1 is
          when a =>
             null;
          when b | c =>
             y : float;
             case option1 is
                when c =>
                   z : float;
                when others =>
                   null;
             end case;
       end case;
    end record;

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  parent reply	other threads:[~2020-12-31 15:03 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-31 10:38 Question on variant/discriminated records reinert
2020-12-31 10:52 ` J-P. Rosen
2020-12-31 12:24   ` reinert
2020-12-31 12:46     ` Gautier write-only address
2020-12-31 12:57       ` reinert
2020-12-31 13:29       ` DrPi
2020-12-31 16:06         ` Gautier write-only address
2020-12-31 15:03 ` Dmitry A. Kazakov [this message]
2021-01-01  9:19   ` reinert
replies disabled

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