I added const in declarations so you get syntax error. I also disabled the const’s in delphi mode because it does indeed break inline specializations. Not sure how difficult that will be to fix or if it’s even worth it since this feature isn’t in delphi afaik.
https://github.com/genericptr/freepascal/tree/generic_constants Pointless test to show the syntax: {$mode objfpc} {$modeswitch advancedrecords} {$interfaces CORBA} program generic_constants_interfaces; type generic IMyInterface<T, const U> = interface procedure DoThis (value: T); end; type generic THelper<T, const U> = record list: array[0..U-1] of T; end; type generic TMyClass<T, const U> = class (specialize IMyInterface<T, U>) type // todo: second param in THelper must be const also! THelperType = specialize THelper<T, U>; public helper: THelperType; procedure DoThis (value: T); end; TListClass = specialize TMyClass<integer,10>; procedure TMyClass.DoThis (value: T); begin writeln('DoThis:',value, ' default: ', U); end; var c: TListClass; begin c := TListClass.Create; c.helper.list[5] := 100; writeln(c.helper.list[5]); c.DoThis(100); end. Regards, Ryan Joseph _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal