summaryrefslogtreecommitdiff
path: root/packages/fcl-passrc/tests/tcresolvegenerics.pas
diff options
context:
space:
mode:
authormattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-08-20 17:20:43 +0000
committermattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-08-20 17:20:43 +0000
commit9efacdf9c1a554a4efefb13b21f0a3adefcc268d (patch)
tree7137c522bd87b3b70fa0872933ae58047ffbffa2 /packages/fcl-passrc/tests/tcresolvegenerics.pas
parentb9dd3dca4bd81d20e80fc0089b0ebae2c04ec6a4 (diff)
downloadfpc-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.pas18
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);