summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/tbs/tb0299.pp
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.