summaryrefslogtreecommitdiff
path: root/packages/fcl-passrc/tests/tcresolvegenerics.pas
diff options
context:
space:
mode:
authormattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-09-06 09:06:03 +0000
committermattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-09-06 09:06:03 +0000
commit3c8d7cc8ccec6a93097a61e0af6651edb42eb0cb (patch)
tree6cb3e862081037add60674bd5093567d661d7509 /packages/fcl-passrc/tests/tcresolvegenerics.pas
parentfc6f169bbef3193c9ef2b7ebda9414e86b2e8830 (diff)
downloadfpc-3c8d7cc8ccec6a93097a61e0af6651edb42eb0cb.tar.gz
fcl-passrc: resolver specialize name with params
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@46786 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-passrc/tests/tcresolvegenerics.pas')
-rw-r--r--packages/fcl-passrc/tests/tcresolvegenerics.pas26
1 files changed, 24 insertions, 2 deletions
diff --git a/packages/fcl-passrc/tests/tcresolvegenerics.pas b/packages/fcl-passrc/tests/tcresolvegenerics.pas
index d87a81066e..9e5f7a8b19 100644
--- a/packages/fcl-passrc/tests/tcresolvegenerics.pas
+++ b/packages/fcl-passrc/tests/tcresolvegenerics.pas
@@ -5,7 +5,8 @@ unit tcresolvegenerics;
interface
uses
- Classes, SysUtils, testregistry, tcresolver, PasResolveEval, PParser;
+ Classes, SysUtils, testregistry, tcresolver, PasResolveEval, PParser,
+ PScanner;
type
@@ -91,7 +92,8 @@ type
procedure TestGen_Class_MemberTypeConstructor;
procedure TestGen_Class_AliasMemberType;
procedure TestGen_Class_AccessGenericMemberTypeFail;
- procedure TestGen_Class_ReferenceTo; // ToDo
+ procedure TestGen_Class_ReferenceTo;
+ procedure TestGen_Class_TwoSpecsAreNotRelatedWarn;
procedure TestGen_Class_List;
// ToDo: different modeswitches at parse time and specialize time
@@ -1568,6 +1570,26 @@ begin
ParseProgram;
end;
+procedure TTestResolveGenerics.TestGen_Class_TwoSpecsAreNotRelatedWarn;
+begin
+ StartProgram(false);
+ Add([
+ '{$mode delphi}',
+ 'type',
+ ' TObject = class end;',
+ ' TBird<T> = class F: T; end;',
+ ' TBirdWord = TBird<Word>;',
+ ' TBirdChar = TBird<Char>;',
+ 'var',
+ ' w: TBirdWord;',
+ ' c: TBirdChar;',
+ 'begin',
+ ' w:=TBirdWord(c);',
+ '']);
+ ParseProgram;
+ CheckResolverHint(mtWarning,nClassTypesAreNotRelatedXY,'Class types "TBird<System.Char>" and "TBird<System.Word>" are not related');
+end;
+
procedure TTestResolveGenerics.TestGen_Class_List;
begin
StartProgram(false);