[fpc-devel] Generic instantiations as result types of procedural types

Sven Barth pascaldragon at googlemail.com
Wed Dec 16 22:44:43 CET 2020


Am 16.12.2020 um 17:09 schrieb Blaise--- via fpc-devel:
> The patch http://hg.blaise.ru/public/fpc/rev/544a934d262e (attached) 
> fixes the following:
> -------8<-------
> {$Mode Delphi}
>
> type G<T> = class
>     var X: T;
>     // EXPECTED: gets compiled
>     // ACTUAL: 'Error: Generics without specialization cannot be used 
> as a type for a variable'
>     class var F: function(const X: T) : G<T> of object;
>     function Foo(const X: T): G<T>;
> end;
>
> function G<T>.Foo(const X: T): G<T>;
> begin
>     result := G<T>.Create;
>     result.X := X
> end;
>
> begin
>     G<Integer>.F := G<Integer>.Create.Foo;
>     writeln( G<Integer>.F(42).X = 42 );
> end.
> -------8<-------

Applied in r47795.

Regards,
Sven


More information about the fpc-devel mailing list