summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/test/tgeneric2.pp
blob: 08b959367f913ac05a403ad3a46041bee78b6ef8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{ %fail }

{$mode objfpc}

type
   generic TList<_T>=class(TObject)
     data : _T;
     procedure Add(item: _T);
   end;

procedure TList.Add(item: _T);
var
  i : integer;
begin
  { The next line should fail for TList(string) }
  i:=item;
  data:=item;
end;

type
  TMyStringList = specialize TList<string>;

var
  slist : TMyStringList;
begin
  slist := TMyStringList.Create;
  slist.Add('Test');
  writeln(slist.data);
end.