[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