comp.lang.ada
 help / color / mirror / Atom feed
* Quick question regarding limited type return syntax
@ 2014-07-30 23:51 NiGHTS
  2014-07-31  0:02 ` Adam Beneschan
  2014-07-31  0:48 ` Shark8
  0 siblings, 2 replies; 40+ messages in thread
From: NiGHTS @ 2014-07-30 23:51 UTC (permalink / raw)


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?


^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2014-08-05 19:24 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-30 23:51 Quick question regarding limited type return syntax NiGHTS
2014-07-31  0:02 ` Adam Beneschan
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

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