comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: Re: Ada Distilled problem
Date: Fri, 04 Mar 2016 21:36:47 +0000
Date: 2016-03-04T21:36:47+00:00	[thread overview]
Message-ID: <lyoaauj574.fsf@pushface.org> (raw)
In-Reply-To: cd9a0037-394c-43d3-ba37-2fda8e6ca898@googlegroups.com

Brad Moore <bmoore.ada@gmail.com> writes:

> On Friday, March 4, 2016 at 11:21:28 AM UTC-7, Simon Wright wrote:
>> A Stack Overflow user has been having problems[1] trying to use the
>> queue manager described at page 82 of Ada Distilled (2005 version)[2].
>> 
>> To see the problem in its essentials, the (inoperative!) spec could be
>> 
>>    generic
>>       type Element is tagged private;
>>    package Lists is
>>       type Item is new Element with private;
>>       type List is tagged private;
>> 
>>       procedure Insert (Self : in out List; I : Item'Class);
>> 
>>    private
>>       type Item is new Element with null record;
>>       type List is tagged null record;
>>    end Lists;
>> 
>> with a calling program
>> 
>>    with Lists;
>>    procedure Main is
>>       type Temp is tagged null record;
>>       package Temp_List is new Lists (Temp);
>> 
>>       FL : Temp_List.List;
>> 
>>       Instance : Temp := Temp'(null record);
>> 
>>    begin
>>       Temp_List.Insert (Self => FL, I  => Instance);
>>    end Main;
>> 
>> resulting in
>> 
>>    main.adb:11:40: expected type "Item'Class" defined at lists.ads:4,
>>    instance at line 4
>>    main.adb:11:40: found type "Temp" defined at line 3
>> 
>> and I can't see any way of twisting this so it can compile. And, in any
>> case, what is the point of "type Item"?
>
> I dont see any point. Looks to me like the example needs to be
> corrected.
>
> I would change the 'I' parameter of the Insert to be of type
> Element'Class, then this should compile.

Yes, I agree.

When I said I "can't see any way of twisting this so it can compile" I
meant that I was trying to get Main to compile without changing
Lists.


  reply	other threads:[~2016-03-04 21:36 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-04 18:21 Ada Distilled problem Simon Wright
2016-03-04 18:58 ` Brad Moore
2016-03-04 21:36   ` Simon Wright [this message]
2016-03-04 19:01 ` Jeffrey R. Carter
replies disabled

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