mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 20:08:12 +02:00
59 lines
1.1 KiB
ObjectPascal
59 lines
1.1 KiB
ObjectPascal
program tclass13;
|
|
|
|
{$ifdef fpc}
|
|
{$mode delphi}{$H+}
|
|
{$endif}
|
|
{$apptype console}
|
|
uses
|
|
typinfo;
|
|
type
|
|
TRootClass = class
|
|
public
|
|
type
|
|
TNode = class
|
|
private
|
|
FTest: Integer;
|
|
type
|
|
TNode = class
|
|
FNode: TRootClass.TNode.TNode;
|
|
end;
|
|
en = (e1,e2);
|
|
TOtherNode = class
|
|
public
|
|
type
|
|
TNestedInOtherNode = class
|
|
ffield: longint;
|
|
end;
|
|
end;
|
|
TFinalNode = class
|
|
fx: TRootClass.TNode.TOtherNode.TNestedInOtherNode;
|
|
end;
|
|
published
|
|
property Test: Integer read FTest write FTest;
|
|
end;
|
|
class procedure DoTest;
|
|
end;
|
|
|
|
class procedure TRootClass.DoTest;
|
|
var
|
|
Test: TNode;
|
|
Test1: TNode.TNode;
|
|
begin
|
|
Test := TNode.Create;
|
|
Test.Test := 1;
|
|
if Test.ClassName <> 'TRootClass.TNode' then
|
|
halt(1);
|
|
Test.Free;
|
|
Test1 := TNode.TNode.Create;
|
|
if Test1.ClassName <> 'TRootClass.TNode.TNode' then
|
|
halt(2);
|
|
Test1.FNode:=Test1;
|
|
Test1.Free;
|
|
end;
|
|
|
|
begin
|
|
TRootClass.DoTest;
|
|
if GetEnumName(TypeInfo(TRootClass.TNode.en), ord(e1))<>'e1' then
|
|
halt(3);
|
|
end.
|