mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-08 08:28:09 +02:00

* apply patch by Blaise.ru to allow record methods to be assigned to method variables as well (this is Delphi compatible) + added test ........ * apply patch by Blaise.ru to allow specializations for the result type of function and method variables + added tests ........ * fix for Mantis #38238: when creating a copy of a procdef for a procvar set the methodpointer flag also for methods of records + added test ........ git-svn-id: branches/fixes_3_2@48653 -
24 lines
495 B
ObjectPascal
24 lines
495 B
ObjectPascal
program tgeneric106;
|
|
|
|
{$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;
|
|
if G<Integer>.F(42).X <> 42 then
|
|
halt(1);
|
|
end.
|