comp.lang.ada
 help / color / mirror / Atom feed
From: "Tomek Wałkuski" <tomek.walkuski@gmail.com>
Subject: "Ada Gems": Constructor functions
Date: Wed, 05 Sep 2007 18:10:27 -0000
Date: 2007-09-05T18:10:27+00:00	[thread overview]
Message-ID: <1189015827.384331.17490@k79g2000hse.googlegroups.com> (raw)

Hi,

motivated by this article posted at adacore.com I have written some
code:

---------
t.ads
---------
with Ada.Strings.Unbounded;
use Ada.Strings.Unbounded;

package T is
    type Object (<>) is tagged limited private;

   function Create_Object (Name : in String) return Object;
   function Construct return Object;
   function Name (This : in Object) return String;

   type Object is tagged limited
      record
         Name : Unbounded_String;
      end record;
end T;


---------
t.adb
---------
package body T is
   function Create_Object (Name : in String) return Object is
      return (Name => To_Unbounded_String (Name));
   end Create_Object;

   function Construct return Object is
      return Create_Object (Name => "Object without a name!");
   end Construct;

   function Name (This : in Object) return String is
   begin
      return To_String (This.Name);
   end Name;

   type Object is tagged limited
      record
         Name : Unbounded_String;
      end record;
end T;


---------
test_t.adb
---------
with T;

procedure Test_T is
   Some_Object : constant T.Object := Construct;
begin
   null;
end Test_T;

------------------------------
... and tried to compile it.

(Gentoo Linux, gnat-gpl-4.1.3.2007)

Compiler said:
"
+================GNAT BUG DETECTED==================+
| GPL 2007 (20070402-41) (i686-pc-linux-gnu) Assert_Failure namet.adb:
687  |
(...)
compilation abandoned
gnatmake: "test_t.adb" compilation error
"

Is it REALLY a compiler bug? Or am I only dumb? :) Maybe I'm doing
something, somewhere wrong?




             reply	other threads:[~2007-09-05 18:10 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-05 18:10 Tomek Wałkuski [this message]
2007-09-05 22:47 ` "Ada Gems": Constructor functions Jeffrey R. Carter
     [not found]   ` <1189064716.528979.201170@19g2000hsx.googlegroups.com>
2007-09-06  7:54     ` Tomek Wa kuski
2007-09-06 13:55       ` Robert A Duff
2007-09-06 14:12         ` Tomek Wa kuski
2007-09-06  0:04 ` Robert A Duff
2007-09-06 16:16 ` anon
2007-09-07 10:38   ` Tomek Wa kuski
2007-09-07 15:17     ` Robert A Duff
2007-09-08 18:20       ` Tomek Wa kuski
2007-09-10 13:46         ` Tomek Wa kuski
2007-09-11  7:51           ` Georg Bauhaus
2007-09-11 10:26             ` Tomek Wa kuski
2007-09-11 21:33             ` Anh Vo
2007-09-12  7:39               ` Tomek Wa kuski
replies disabled

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