summaryrefslogtreecommitdiff
path: root/packages/fcl-passrc/tests/tcresolvegenerics.pas
diff options
context:
space:
mode:
authormattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-08-23 14:13:06 +0000
committermattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-08-23 14:13:06 +0000
commit10f1c0a34a823b04dbe8e3a0563689b4c9db0109 (patch)
tree7fa3eca4a9d0f958858feb8ee823ccd102f9cd03 /packages/fcl-passrc/tests/tcresolvegenerics.pas
parent989d28c65feead052aab28420a0d8344237de56e (diff)
downloadfpc-10f1c0a34a823b04dbe8e3a0563689b4c9db0109.tar.gz
fcl-passrc: test unitdot in constraint
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@46663 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-passrc/tests/tcresolvegenerics.pas')
-rw-r--r--packages/fcl-passrc/tests/tcresolvegenerics.pas31
1 files changed, 31 insertions, 0 deletions
diff --git a/packages/fcl-passrc/tests/tcresolvegenerics.pas b/packages/fcl-passrc/tests/tcresolvegenerics.pas
index 25852bc43f..baa5631937 100644
--- a/packages/fcl-passrc/tests/tcresolvegenerics.pas
+++ b/packages/fcl-passrc/tests/tcresolvegenerics.pas
@@ -30,6 +30,7 @@ type
procedure TestGen_ConstraintRecordClassFail;
procedure TestGen_ConstraintArrayFail;
procedure TestGen_ConstraintConstructor;
+ procedure TestGen_ConstraintUnit;
// ToDo: constraint T:Unit2.TBird
// ToDo: constraint T:Unit2.TGen<word>
procedure TestGen_ConstraintSpecialize;
@@ -379,6 +380,36 @@ begin
ParseProgram;
end;
+procedure TTestResolveGenerics.TestGen_ConstraintUnit;
+begin
+ AddModuleWithIntfImplSrc('unit1.pas',
+ LinesToStr([
+ 'type',
+ ' TBird = class b1: word; end;',
+ ' generic TAnt<T> = class a1: T; end;',
+ '']),
+ LinesToStr([
+ '']));
+ StartProgram(true,[supTObject]);
+ Add([
+ 'uses unit1;',
+ 'type',
+ ' generic TCat<T: unit1.TBird> = class v: T; end;',
+ ' generic TFish<T: specialize TAnt<word>> = class v: T; end;',
+ ' TEagle = class(unit1.TBird);',
+ ' TRedAnt = specialize TAnt<word>;',
+ 'var',
+ ' eagle: TEagle;',
+ ' redant: TRedAnt;',
+ ' cat: specialize TCat<TEagle>;',
+ ' fish: specialize TFish<TRedAnt>;',
+ 'begin',
+ ' cat.v:=eagle;',
+ ' fish.v:=redant;',
+ '']);
+ ParseProgram;
+end;
+
procedure TTestResolveGenerics.TestGen_ConstraintSpecialize;
begin
StartProgram(false);