From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.224.172.66 with SMTP id k2mr1394719qaz.4.1372837932943; Wed, 03 Jul 2013 00:52:12 -0700 (PDT) X-Received: by 10.49.62.3 with SMTP id u3mr923042qer.26.1372837932889; Wed, 03 Jul 2013 00:52:12 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!mx05.eternal-september.org!feeder.eternal-september.org!eu.feeder.erje.net!feeder.erje.net!us.feeder.erje.net!news.glorb.com!y2no210482qax.0!news-out.google.com!f7ni623qai.0!nntp.google.com!y2no210476qax.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Wed, 3 Jul 2013 00:52:12 -0700 (PDT) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=105.251.10.36; posting-account=p-xPhAkAAADjHQWEO7sFME2XBdF1P_2H NNTP-Posting-Host: 105.251.10.36 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <0606a658-9816-4611-84dd-4f999bf6018e@googlegroups.com> Subject: Variant record limitation - what's a better solution? From: Peter Brooks Injection-Date: Wed, 03 Jul 2013 07:52:12 +0000 Content-Type: text/plain; charset=ISO-8859-1 Xref: news.eternal-september.org comp.lang.ada:16074 Date: 2013-07-03T00:52:12-07:00 List-Id: I see that I can't do what I'd like to with a variant record. What should I be doing? Here's an example: type my_object(X : size_type) is record name : string(1..80); case X is when small => Y : small_type; -- line 20 when medium => Y : medium_type; -- line 21 when large => Y: large_type; -- line 22 end case; end record; The errors are: line 21 'Y' conflicts with declaration at line 20 line 22 'Y' conflicts with declaration at line 21 I was hoping to have a different type depending on the case, but this doesn't seem allowed. What would achieve this?