comp.lang.ada
 help / color / mirror / Atom feed
* Why isn't this ambiguous?
@ 1997-08-01  0:00 Anonymous
  1997-08-02  0:00 ` Robert Dewar
  1997-08-02  0:00 ` Robert Dewar
  0 siblings, 2 replies; 6+ messages in thread
From: Anonymous @ 1997-08-01  0:00 UTC (permalink / raw)



Here's some code:

with Ada.Text_Io;

use Ada;
procedure F_Test is
   subtype I_Num is Integer range 1 ..      5;
   subtype O_Num is Integer range 0 .. 99_999;

   function Image (I : I_Num) return Character is
      Img : constant String := Integer'Image (I);
   begin
      Text_Io.Put_Line ("This is Image 1");

      return Img (Img'Last);
   end Image;

   function Make (I : I_Num; O : O_Num) return String is
      function Image (O : O_Num) return String is
         Img : String := Integer'Image (O);
      begin
         Text_Io.Put_Line ("This is Image 2");

         Img (Img'First) := '0';

   end Image;

   function Make (I : I_Num; O : O_Num) return String is
      function Image (O : O_Num) return String is
         Img : String := Integer'Image (O);
      begin
         Text_Io.Put_Line ("This is Image 2");

         Img (Img'First) := '0';

         if Img'Length > 5 then
            return Img (Img'First + 1 .. Img'Last);
         end if;

         return (1 .. 5 - Img'Length => '0') & Img;
      end Image;
   begin
      return Image (I) & '_' & Image (O);
   end Make;
begin
   Text_Io.Put_Line (Make (2,     1) );
   Text_Io.Put_Line (Make (3, 1_000) );
end F_Test;


With GNAT 3.07/Solaris/Sparc and 3.09/Linux/Pentium, this compiles and
produces this output:

This is Image 1
This is Image 1
2_1
This is Image 1

raised CONSTRAINT_ERROR


I expected the calls to Image to be ambiguous, but GNAT has chosen the
one that returns Character. Anyone able to provide insight?

Jeff Carter  PGP:1024/440FBE21
My real e-mail address: ( carter @ innocon . com )
"I blow my nose on you."
Monty Python & the Holy Grail

Posted with Spam Hater - see
http://www.compulink.co.uk/~net-services/spam/





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

end of thread, other threads:[~1997-08-06  0:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-08-01  0:00 Why isn't this ambiguous? Anonymous
1997-08-02  0:00 ` Robert Dewar
1997-08-02  0:00 ` Robert Dewar
1997-08-04  0:00   ` Anonymous
1997-08-04  0:00     ` Robert A Duff
1997-08-06  0:00       ` Robert Dewar

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