{ %NORUN } program tgenfwd1; {$mode objfpc} type generic TGen1 = class; generic TGen2 = class; generic TGen3 = class; generic TGen4 = class; TTest = class f1: specialize TGen1; f2: specialize TGen2; f3: specialize TGen3<42>; f4: specialize TGen4; { this will reuse the above specializations } f5: specialize TGen1; f6: specialize TGen2; f7: specialize TGen3<42>; f8: specialize TGen4; end; generic TGen1 = class end; generic TGen2 = class end; generic TGen3 = class end; generic TGen4 = class end; begin end.