summaryrefslogtreecommitdiff
path: root/tests/test/tgeneric98.pp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test/tgeneric98.pp')
-rw-r--r--tests/test/tgeneric98.pp50
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/test/tgeneric98.pp b/tests/test/tgeneric98.pp
new file mode 100644
index 0000000000..272ba9c1d5
--- /dev/null
+++ b/tests/test/tgeneric98.pp
@@ -0,0 +1,50 @@
+{ %NORUN }
+
+program tgeneric98;
+
+{$mode objfpc}
+
+type
+ generic TTest<T> = class
+ public type
+ TAlias = T;
+ private
+ fField: TAlias;
+ procedure SetField(aValue: TAlias);
+ public
+ property Field: TAlias read fField write SetField;
+ function CalcField: TAlias;
+ end;
+
+ generic TTest2<T> = class
+ public type
+ TTestT = specialize TTest<T>;
+ private
+ fField: TTestT.TAlias;
+ procedure SetField(aValue: TTestT.TAlias);
+ public
+ property Field: TTestT.TAlias read fField write SetField;
+ function CalcField: TTestT.TAlias;
+ end;
+
+procedure TTest.SetField(aValue: TAlias);
+begin
+end;
+
+function TTest.CalcField: TAlias;
+begin
+ Result := Default(TAlias);
+end;
+
+procedure TTest2.SetField(aValue: TTestT.TAlias);
+begin
+end;
+
+function TTest2.CalcField: TTestT.TAlias;
+begin
+ Result := Default(TTestT.TAlias);
+end;
+
+begin
+
+end.