comp.lang.ada
 help / color / mirror / Atom feed
From: "Oliver Kellogg" <oliver.kellogg@vs.dasa.de>
Subject: Should this be legal?
Date: Thu, 22 Mar 2001 11:13:16 +0100
Date: 2001-03-22T11:13:16+01:00	[thread overview]
Message-ID: <99cjt2$v9g@newsserv.vs.dasa.de> (raw)

Hello Ada experts,

The full declaration of the Derived type looks different than
the partial view (Base_2 vs. Base(2))

Should this be legal?
Rational Apex 3.2.0b and GNAT 3.13p both accept it.
(However, both compilers tend to have problems with this
type of construction - especially in more complicated contexts.)

But then, if Base_2 and Base(2) are supposedly interchangeable,
how come the function Legal is accepted but function Illegal is
refused ("constraint not allowed here") ?

Thanks,

Oliver M. Kellogg


-- subtyped_discriminant.ads

package Subtyped_Discriminant is

   type Base (N : Integer) is tagged null record;

   subtype Base_2 is Base (2);

   type Derived is new Base_2 with private;

private

   type Derived is new Base (2) with null record;

   -- However,

   function Legal return Base_2;

   function Illegal return Base (2);

end Subtyped_Discriminant;







             reply	other threads:[~2001-03-22 10:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-03-22 10:13 Oliver Kellogg [this message]
2001-03-22 11:15 ` Should this be legal? Martin Dowie
2001-03-22 14:21   ` Oliver Kellogg
2001-03-22 16:29 ` Mark Lundquist
2001-03-22 16:51   ` Robert A Duff
replies disabled

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