浏览代码

* Test for default of property override: default of parent must be preserved

git-svn-id: trunk@12117 -
michael 16 年之前
父节点
当前提交
ea29eb439f
共有 2 个文件被更改,包括 49 次插入0 次删除
  1. 1 0
      .gitattributes
  2. 48 0
      tests/tbs/tb0557.pp

+ 1 - 0
.gitattributes

@@ -7136,6 +7136,7 @@ tests/tbs/tb0553.pp svneol=native#text/plain
 tests/tbs/tb0554.pp svneol=native#text/plain
 tests/tbs/tb0555.pp svneol=native#text/plain
 tests/tbs/tb0556.pp svneol=native#text/plain
+tests/tbs/tb0557.pp svneol=native#text/plain
 tests/tbs/tb205.pp svneol=native#text/plain
 tests/tbs/ub0060.pp svneol=native#text/plain
 tests/tbs/ub0069.pp svneol=native#text/plain

+ 48 - 0
tests/tbs/tb0557.pp

@@ -0,0 +1,48 @@
+program rtti;
+
+{$ifdef fpc}
+{$mode objfpc}{$H+}
+{$apptype console}
+{$endif}
+
+uses
+  {$IFDEF UNIX}{$IFDEF UseCThreads}
+  cthreads,
+  {$ENDIF}{$ENDIF}
+  Classes, typinfo
+  { you can add units after this };
+
+type
+  { TSomeBaseClass }
+
+  TSomeBaseClass = class(TPersistent)
+  private
+    FSomeProperty: Integer;
+  public
+    property SomeProperty: Integer read FSomeProperty write FSomeProperty default 10;
+  end;
+
+  { TSomeDerivedClass }
+
+  TSomeDerivedClass = class(TSomeBaseClass)
+  private
+    FOwnProperty: Integer;
+  published
+    property SomeProperty;
+    property OwnProperty: Integer read FOwnProperty write FOwnProperty default 11;
+  end;
+
+var
+  BC : TSomeBaseClass;
+  DC: TSomeDerivedClass;
+  Info: PPropInfo;
+begin
+  DC := TSomeDerivedClass.Create;
+  Info := GetPropInfo(DC, 'SomeProperty');
+  if (Info^.Default<>10) then
+    Halt(1);
+  Info := GetPropInfo(DC, 'OwnProperty');
+  if Info^.Default<>11 then
+    Halt(2);
+end.
+