Ahh, thanks Sven! I'll see if I can post a bug report soon of it.. I'll use the work-around for now. :)

On 2015-02-19 12:22 AM, Sven Barth wrote:
On 18.02.2015 20:51, Den wrote:
Hi there,

Currently this code:

   TSomeObject<T> = Class;
   TSomeOtherObject<T : TObject> = Class(TSomeObject<T> );

And finally:

   TMyObject = Class;
   TSomeOtherOtherObject<T : TMyObject> = Class(TSomeOtherObject<T> );

Comes up with error 'got "T" expected "TObject"' .. But TMyObject is
based off of TObject?

At seems that there are still problems if TMyObject is merely a forward declaration... the following works:

=== code begin ===

type
  TSomeObject<T> = Class
  end;

  TSomeOtherObject<T : TObject> = Class(TSomeObject<T> );

  TMyObject = Class
  end;

  TSomeOtherOtherObject<T : TMyObject> = Class(TSomeOtherObject<T> );

=== code end ===

Note 1: this is a forward declaration "XYZ = class;", this is not: "XYZ = class(TObject);" Note2 : a generic /must not/ be a forward declaration (in this case TSomeObject<T>).

A forward declaration of TMyObject should be valid in this case however, so please report a bug with an example program attached.

Regards,
Sven
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to