[fpc-pascal] Local Type T and generics

Sven Barth pascaldragon at googlemail.com
Tue Jan 3 22:28:44 CET 2023


Am 31.12.2022 um 14:34 schrieb Vojtěch Čihák via fpc-pascal:
> Hi,
>   
> I have local type TTempItem, i.e. declared inside method of a generic class.
> When I write:
> type
>       TTempItem = record
>         Item: T;
>         Empty: Boolean;
>       end;
> I got: Identifier not found "T".
>   
> When I write:
> type
>       TTempItem = record
>         Item: TBaseGList.T;  //name of the class
>         Empty: Boolean;
>       end;
> I got: Generics without  specialization cannot be used as a type for a variable
>   
> And finally
> type TLocalT = T;
>       TTempItem = record
>         Item: TLocalT;
>         Empty: Boolean;
>       end;
> ^^^ this works.
>   
> type TLocalT = TBaseGList.T;
>       TTempItem = record
>         Item: TLocalT;
>         Empty: Boolean;
>       end;
> ^^^ work too.
>   
> Is this intended? Or known bug?

It's a bug. Please report with a full example.

Regards,
Sven


More information about the fpc-pascal mailing list