comp.lang.ada
 help / color / mirror / Atom feed
* Should this be legal?
@ 2001-03-22 10:13 Oliver Kellogg
  2001-03-22 11:15 ` Martin Dowie
  2001-03-22 16:29 ` Mark Lundquist
  0 siblings, 2 replies; 5+ messages in thread
From: Oliver Kellogg @ 2001-03-22 10:13 UTC (permalink / 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;







^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2001-03-22 16:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-03-22 10:13 Should this be legal? Oliver Kellogg
2001-03-22 11:15 ` Martin Dowie
2001-03-22 14:21   ` Oliver Kellogg
2001-03-22 16:29 ` Mark Lundquist
2001-03-22 16:51   ` Robert A Duff

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