comp.lang.ada
 help / color / mirror / Atom feed
From: nobody@REPLAY.COM (Anonymous)
Subject: Re: Why isn't this ambiguous?
Date: 1997/08/04
Date: 1997-08-04T00:00:00+00:00	[thread overview]
Message-ID: <199708041340.PAA25417@basement.replay.com> (raw)
In-Reply-To: dewar.870556483@merv


<199708011539.RAA04612@basement.replay.com>

On 2 Aug 1997 17:15:50 -0400, dewar@merv.cs.nyu.edu (Robert Dewar)
wrote:

> iJeff asked a question about a program with Image and Make functions
> and wondered why it was not ambiguous. Something went wrong in the
> posting of this message, and the resulting procedure is obviously
> syntactically illegal, and furthermore, I cannot guess what it was
> supposed to be. Jeff, pleasse repost!
> 

Yep, sorry, I got some of the code in there twice. I'll try to do better
this time:

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';

         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 unclog my nose towards you."
Monty Python & the Holy Grail

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





  reply	other threads:[~1997-08-04  0:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
1997-08-04  0:00     ` Robert A Duff
1997-08-06  0:00       ` Robert Dewar
replies disabled

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