From: Eric Hughes <eric.eh9@gmail.com>
Subject: Defect with formal package parameters
Date: Thu, 19 Jun 2008 08:14:15 -0700 (PDT)
Date: 2008-06-19T08:14:15-07:00 [thread overview]
Message-ID: <78a72b57-bd9f-45b1-bd6c-65bc855cb831@y38g2000hsy.googlegroups.com> (raw)
GNAT 2008 (just installed) fails to compile the following example,
which was cut down from existing code to isolate the problem. This is
the error message.
> foo.ada-spec:16:34: actual for "Operation" in actual instance does not match formal
Changing the syntax to eliminate "others =>", which is what the
commented-out line does, allows the example to compile without error.
Unfortunately, that's not a viable workaround, because the real code
requires named parameters.
At present I am assuming this is a defect with GNAT 2008 rather than
with the Ada 2005 language definition. I had the identical problem
with GNAT 2007. I had stopped development back then, a few months
ago, in the apparently-misplaced hope that a new compiler version
would fix this.
I should point out, for those without significant experience in
generic programming, that this defect completely blocks a huge class
of generic layering techniques that are primarily of interest to
library authors. Code that does not admit significant reconfiguration
does not require this technique.
Eric
=======================================================
package Foo is
pragma Elaborate_Body( Foo ) ;
generic
with procedure Operation is <> ;
package Signature is end ;
procedure Operation_Actual is null ;
package Impl is new Signature( Operation => Operation_Actual ) ;
generic
with package S is new Signature( others => <> ) ;
-- with package S is new Signature( <> ) ;
package Module is end ;
package M is new Module( S => Impl ) ;
end ;
=======================================================
next reply other threads:[~2008-06-19 15:14 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-19 15:14 Eric Hughes [this message]
2008-06-19 19:49 ` Defect with formal package parameters Simon Wright
2008-06-21 18:42 ` Eric Hughes
2008-06-19 22:48 ` Georg Bauhaus
2008-06-20 17:25 ` Eric Hughes
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox