diff options
author | mattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-09-06 09:06:03 +0000 |
---|---|---|
committer | mattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-09-06 09:06:03 +0000 |
commit | 3c8d7cc8ccec6a93097a61e0af6651edb42eb0cb (patch) | |
tree | 6cb3e862081037add60674bd5093567d661d7509 /packages/fcl-passrc/tests/tcresolvegenerics.pas | |
parent | fc6f169bbef3193c9ef2b7ebda9414e86b2e8830 (diff) | |
download | fpc-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.pas | 26 |
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); |