TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Forum View

Use Monospaced Font
Show HTML Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Mark Lundquist <[log in to unmask]>
Reply To:
Mark Lundquist <[log in to unmask]>
Mon, 26 Nov 2001 22:12:31 -0800
text/plain (53 lines)
> -----Original Message-----
> From: Team Ada: Ada Advocacy Issues (83 & 95)
> [mailto:[log in to unmask]]On Behalf Of Ed Colbert
> Sent: Monday, November 26, 2001 4:32 PM
> To: [log in to unmask]
> Subject: FW: Dispatching Example
> Hi All,
> About 3 months I posted a question on comp.lang.ada.  Tucker responded.
> I posted some follow up questions, but never saw a response.  I hope
> that Tucker or someone on this mail list might be able to answer my
> questions.
> Why is the expression ambiguous?

Because Is_Item is overloaded and each one is an "acceptable interpretation"
[RM 8.6].

> Isn't the tag of C, which in this
> case is compile time determinable, used to resolve the call to Is_Item
> per 5.2(9)?
> I suppose it could be ambiguous if the expression is evaluated first
> as allowed by 5.2(7); but then when would 5.2(8-10) apply?

That doesn't make sense -- there's no expression to evaluate (at run time)
because the construct is illegal.

> Clearly, something is confusing Richard & I.

It sounds as though you're confusing overload resolution with the
determination of the controlling tag.

Overload resolution determines which operation is denoted by the call.

The controlling tag determines which subprogram_body is executed for that

The way it goes is that the overloading rules are applied, then the
non-overloading rules.  You have to have exactly one acceptable
interpretation for a construct.  If you make it that far, then you get to
find out if that interpretation is legal (with respect to the
non-overloading rules).  The way it *doesn't* work is, "exactly one legal

Hope this helps,
Mark Lundquist