blob: a11d2af11cc52b2263f6a2ecf68a3f35e6699b79 (
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
|
{$mode objfpc}
type
tmyclass = class of tmyobject;
tmyobject = class
end;
{ only a stupid test routine }
function getanchestor(c : tclass) : tclass;
var
l : longint;
begin
getanchestor:=tobject;
l:=l+1;
end;
var
classref : tclass;
myclassref : tmyclass;
const
constclassref1 : tclass = tobject;
constclassref2 : tclass = nil;
constclassref3 : tclass = tobject;
begin
{ simple test }
classref:=classref;
{ more difficult }
classref:=myclassref;
classref:=tobject;
myclassref:=tmyobject;
classref:=getanchestor(myclassref);
if (upcase(constclassref1.classname)<>'TOBJECT') or
(constclassref2<>nil) or
(upcase(myclassref.classname)<>'TMYOBJECT') or
(upcase(classref.classname)<>'TOBJECT') then
begin
writeln('Error');
halt(1);
end;
end.
|