diff options
author | mattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-08-20 17:20:43 +0000 |
---|---|---|
committer | mattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-08-20 17:20:43 +0000 |
commit | 9efacdf9c1a554a4efefb13b21f0a3adefcc268d (patch) | |
tree | 7137c522bd87b3b70fa0872933ae58047ffbffa2 /packages/fcl-passrc/tests/tcresolvegenerics.pas | |
parent | b9dd3dca4bd81d20e80fc0089b0ebae2c04ec6a4 (diff) | |
download | fpc-9efacdf9c1a554a4efefb13b21f0a3adefcc268d.tar.gz |
fcl-passrc: check generic constraint T:T
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@46517 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-passrc/tests/tcresolvegenerics.pas')
-rw-r--r-- | packages/fcl-passrc/tests/tcresolvegenerics.pas | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/packages/fcl-passrc/tests/tcresolvegenerics.pas b/packages/fcl-passrc/tests/tcresolvegenerics.pas index acdf9467e3..3880c3ffb9 100644 --- a/packages/fcl-passrc/tests/tcresolvegenerics.pas +++ b/packages/fcl-passrc/tests/tcresolvegenerics.pas @@ -34,6 +34,8 @@ type procedure TestGen_ConstraintSpecialize; procedure TestGen_ConstraintTSpecializeWithT; procedure TestGen_ConstraintTSpecializeAsTFail; + procedure TestGen_ConstraintTcolonTFail; // A<T:T> + // ToDo: A<T:B<T>> fail procedure TestGen_TemplNameEqTypeNameFail; procedure TestGen_ConstraintInheritedMissingRecordFail; procedure TestGen_ConstraintInheritedMissingClassTypeFail; @@ -42,8 +44,6 @@ type procedure TestGen_ConstraintClassType_DotIsAsTypeCast; procedure TestGen_ConstraintClassType_ForInT; procedure TestGen_ConstraintClassType_IsAs; - // ToDo: A<T:T> fail - // ToDo: A<T:B<T>> fail // generic record procedure TestGen_RecordLocalNameDuplicateFail; @@ -429,6 +429,20 @@ begin CheckResolverException('identifier not found "T<>"',nIdentifierNotFound); end; +procedure TTestResolveGenerics.TestGen_ConstraintTcolonTFail; +begin + StartProgram(false); + Add([ + '{$mode objfpc}', + 'type', + ' TObject = class end;', + ' T = TObject;', + ' generic TAnt<T:T> = record v: word; end;', + 'begin', + '']); + CheckResolverException(sTypeCycleFound,nTypeCycleFound); +end; + procedure TTestResolveGenerics.TestGen_TemplNameEqTypeNameFail; begin StartProgram(false); |