comp.lang.ada
 help / color / mirror / Atom feed
From: "James A. Squire" <m193884@CSEHP3.MDC.COM>
Subject: Re: "use" clauses and Ada 95 OOP
Date: 1996/07/20
Date: 1996-07-20T00:00:00+00:00	[thread overview]
Message-ID: <31F170FC.672C@csehp3.mdc.com> (raw)
In-Reply-To: Dup54L.2q2.0.-s@inmet.camb.inmet.com


Robert I. Eachus wrote:
>
> In article <Dup54L.2q2.0.-s@inmet.camb.inmet.com> mg@asp.camb.inmet.com (Mitch
> Gart) writes:
>
>   > It seems to me that this notation is misleading because a reader might
>   > think that the function in pkg1 will be executed.
>
>   > Therefore with tagged types I have adopted the style of always using
>   > "use" clauses and writing the call
>
>   >     func(x);
>
>   > in the source code.  This seems less misleading to me.  I never used to
>   > use "use" clauses in Ada 83 but I now use them a lot in Ada 95 when
>   > calling dispatching operations.
>
>   > Have other people adopted this style?  Comments?  People who have written
>   > coding standards which say "don't use 'use' clauses", do you think this
>   > rule is still a good idea with Ada 95 dispatching?
>
>     My rule is to always "use type" dispatching types.  The names you
> no longer have to qualify are the ones where the qualification would
> be misleading.

Very interesting!  Let me see if I'm reading you right:

1.  func would have to be a primitive operation in order to be a
dispatching call.  Right?

2.  Therefore, func would be covered by the "use type" clause on
<type_of_x>, right?

I liked the idea of "use type" when I thought it only referred to
implicit operations like "&", "+", "=" (operations that I wish the Ada
designers had made a part of the language proper so we wouldn't have any
need for the use clause).  Now that it seems "use type" applies to all
primitive operations (some of which are user-written, like "Handle",
etc.), I'm not so sure.  For example, I would have a coding style rule
that says that all dispatching calls must be properly annotated so that
a maintainer knows what is going on.  How does a code reviewer enforce
such a rule if the developer forgot to annotate it?  How does he tell
that the call is a dispatching call in a normal piece of complex
application code (i.e., this is no "Hello World" we're talking about
here)?
--
James Squire                             mailto:ja_squire@csehp3.mdc.com
MDA Avionics Tools & Processes
McDonnell Douglas Aerospace              http://www.mdc.com/
Opinions expressed here are my own and NOT my company's
"Commander, it's not your decision. We're going. What are you going to
do,
    shoot us down?"
'If that's what's required to protect this station, yes.'
"Excuse me?"
        -- Captain Pierce and Sinclair, "A Voice in the Wilderness II"




  parent reply	other threads:[~1996-07-20  0:00 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-07-17  0:00 "use" clauses and Ada 95 OOP Mitch Gart
1996-07-19  0:00 ` Robert I. Eachus
1996-07-23  0:00   ` Robert I. Eachus
1996-07-25  0:00     ` JamesS1889
1996-07-23  0:00   ` JamesS1889
1996-07-23  0:00     ` Robert Dewar
1996-07-24  0:00     ` Robert I. Eachus
1996-07-24  0:00   ` Jon S Anthony
1996-07-19  0:00 ` Jon S Anthony
1996-07-19  0:00 ` James A. Squire
1996-07-22  0:00   ` Stephen Schmid
1996-07-23  0:00     ` Laurent Guerby
1996-07-23  0:00       ` Robert A Duff
1996-07-23  0:00     ` JamesS1889
1996-07-23  0:00     ` Mitch Gart
1996-07-23  0:00       ` Kevin J. Weise
1996-07-23  0:00         ` JamesS1889
1996-07-23  0:00       ` Kevin J. Weise
1996-07-23  0:00       ` Robert A Duff
1996-07-23  0:00       ` Robert Dewar
1996-07-25  0:00         ` JamesS1889
1996-07-26  0:00           ` Robert A Duff
1996-07-23  0:00     ` JamesS1889
1996-07-24  0:00     ` Jon S Anthony
1996-07-24  0:00     ` Jon S Anthony
1996-07-20  0:00 ` James A. Squire [this message]
1996-07-21  0:00   ` Robert A Duff
1996-07-22  0:00 ` Jon S Anthony
1996-07-23  0:00 ` Jon S Anthony
replies disabled

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