[fpc-pascal] Restricted generic param types

Sven Barth pascaldragon at googlemail.com
Fri Nov 9 07:53:39 CET 2018

Am Fr., 9. Nov. 2018, 05:48 hat Ryan Joseph <ryan at thealchemistguild.com>

> I’m getting a parse error here. It thinks the “U” is another type but in
> fact it’s another generic parameter and not related to “T” at all.  Is this
> a bug? I don’t think the way the parsing works the compiler actually can
> discern this condition.
> {$mode objfpc}
> {$modeswitch advancedrecords}
> program generic_constants_restricted;
> type
>         generic TList<T:tobject, U> = record
>         end;
> begin
> end.

You must use ";" in that case. All parameters separated by "," are of the
same "constraint type" while ";" separates these. Essentially like a
parameter declaration for a function.
(and yes, Delphi handles it like that as well)


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20181109/30de750c/attachment.html>

More information about the fpc-pascal mailing list