From: Adam Beneschan <adambeneschan@gmail.com>
Subject: Re: Quick question regarding limited type return syntax
Date: Wed, 30 Jul 2014 17:02:59 -0700 (PDT)
Date: 2014-07-30T17:02:59-07:00 [thread overview]
Message-ID: <dc7e78f9-a394-43f7-bea2-71f59391fbe5@googlegroups.com> (raw)
In-Reply-To: <166aaec5-5e9c-40e0-9b07-9b9c7d5f7f33@googlegroups.com>
On Wednesday, July 30, 2014 4:51:10 PM UTC-7, NiGHTS wrote:
> I am designing a package which features a "Create" function that returns a newly instantiated "Object" which is a discriminated limited type. The code compiles and operates correctly but gives me a warning that "New_Object" is not used. See below (ellipses represent omitted code):
> package Test is
> type Object (Parameters : access String) is tagged limited private;
> function Create (...) return Object;
> ...
> private
> type Object (Parameters : access String) is tagged limited
> record
> Database : PQ.Database (Parameters);
> ...
> end record;
> ...
> end Test;
>
> package body Test is
> function Create(...) return Object is
> ...
> begin
> return New_Object : Object (Connection_String'Access) do
> null;
> end return;
> end;
> ...
> end Test;
> To remove this warning I've tried this:
>
> return Object (Connection_String'Access) do null; end return;
>
> and it gives an error about expecting a ';'. I've also tried this:
>
>
>
> return Object (Connection_String'Access);
>
> Compiler tells me "argument of conversion cannot be access".
>
> I have tried other syntax variants but all produce errors. My goal here is to avoid using "new" which is why I am trying to return the instance in this way.
>
> How can I rewrite this code so that I won't get any errors or warnings?
What is a PQ.Database?
I've tried this with various dummy types for the Database, and when I get a warning it's that the object is "read but never assigned". Is that the warning you're getting? That's different from a warning that says it's never used.
It appears to me that if this field were assigned in New_Object, or if Database had an initial value in the record or if all components of Database had initial values, you wouldn't get the warning.
-- Adam
next prev parent reply other threads:[~2014-07-31 0:02 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-30 23:51 Quick question regarding limited type return syntax NiGHTS
2014-07-31 0:02 ` Adam Beneschan [this message]
2014-07-31 0:56 ` NiGHTS
2014-07-31 0:48 ` Shark8
2014-07-31 1:00 ` NiGHTS
2014-07-31 1:29 ` Adam Beneschan
2014-07-31 1:38 ` NiGHTS
2014-07-31 4:01 ` Shark8
2014-08-01 2:12 ` Randy Brukardt
2014-08-01 3:40 ` Shark8
2014-08-01 7:57 ` J-P. Rosen
2014-08-01 19:23 ` Randy Brukardt
2014-08-01 19:37 ` J-P. Rosen
2014-08-01 20:53 ` Shark8
2014-08-02 7:11 ` Niklas Holsti
2014-08-02 7:34 ` Dmitry A. Kazakov
2014-08-02 13:20 ` Robert A Duff
2014-08-02 13:44 ` Dmitry A. Kazakov
2014-08-02 14:34 ` Robert A Duff
2014-08-02 16:56 ` Dmitry A. Kazakov
2014-08-02 20:35 ` Niklas Holsti
2014-08-03 7:30 ` Dmitry A. Kazakov
2014-08-04 9:24 ` Niklas Holsti
2014-08-04 10:42 ` G.B.
2014-08-04 11:39 ` Peter Chapin
2014-08-04 17:49 ` Niklas Holsti
2014-08-04 11:36 ` Peter Chapin
2014-08-04 12:43 ` Dmitry A. Kazakov
2014-08-04 16:19 ` G.B.
2014-08-04 16:38 ` Dmitry A. Kazakov
2014-08-04 16:51 ` G.B.
2014-08-04 17:23 ` Dmitry A. Kazakov
2014-08-04 19:37 ` Niklas Holsti
2014-08-05 8:30 ` Dmitry A. Kazakov
2014-08-05 19:24 ` Randy Brukardt
2014-08-03 16:35 ` Robert A Duff
2014-08-02 8:02 ` Jacob Sparre Andersen
2014-08-02 19:20 ` Shark8
2014-08-03 16:07 ` Default values (Was: Quick question regarding limited type return syntax) Jacob Sparre Andersen
2014-08-04 21:29 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox