Re: [fpc-pascal] Local Type T and generics

2023-01-03 Thread Vojtěch Čihák via fpc-pascal

OK, done: https://gitlab.com/freepascal.org/fpc/source/-/issues/40085
 
Thanks
__

Od: "Sven Barth via fpc-pascal" 
Komu: "FPC-Pascal users discussions" 
Datum: 03.01.2023 22:29
Předmět: Re: [fpc-pascal] Local Type T and generics


Am 31.12.2022 um 14:34 schrieb Vojtěch Čihák via fpc-pascal:

> Is this intended? Or known bug?

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

Regards,
Sven
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal 
<https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal>

___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


Re: [fpc-pascal] Local Type T and generics

2023-01-03 Thread Sven Barth via fpc-pascal

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
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


[fpc-pascal] Local Type T and generics

2022-12-31 Thread 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?
 
Thanks.
 
V.
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal