diff options
author | mattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-08-23 14:13:06 +0000 |
---|---|---|
committer | mattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-08-23 14:13:06 +0000 |
commit | 10f1c0a34a823b04dbe8e3a0563689b4c9db0109 (patch) | |
tree | 7fa3eca4a9d0f958858feb8ee823ccd102f9cd03 /packages/fcl-passrc/tests/tcresolvegenerics.pas | |
parent | 989d28c65feead052aab28420a0d8344237de56e (diff) | |
download | fpc-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.pas | 31 |
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); |