blob: e38a5e96e4bbe2480c09e596ae4d3c0394ee68dd (
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
program tforin3;
// check for-in loop if GetEnumerator returns nil
{$mode objfpc}{$H+}
{$APPTYPE CONSOLE}
type
{ TListEnumerator }
TListEnumerator = class
private
FCurrent: String;
public
function MoveNext: Boolean;
property Current: String read FCurrent;
end;
TMyList = class
public
function GetEnumerator: TListEnumerator;
end;
{ TListEnumerator }
function TListEnumerator.MoveNext: Boolean;
begin
Result := True;
end;
{ TMyList }
function TMyList.GetEnumerator: TListEnumerator;
begin
Result := nil;
end;
var
S: String;
L: TMyList;
begin
L := TMyList.Create;
for S in L do
;
L.Free;
end.
|