From fc5c60b0fd370b10eabcee11af56f186add4afca Mon Sep 17 00:00:00 2001 From: mattias Date: Tue, 18 Dec 2018 12:41:03 +0000 Subject: [PATCH] codetools: added test for anonymous expr as arg and dot operator git-svn-id: trunk@59844 - --- .../codetools/tests/testfinddeclaration.pas | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/components/codetools/tests/testfinddeclaration.pas b/components/codetools/tests/testfinddeclaration.pas index 89ad96ed61..8d5aa66245 100644 --- a/components/codetools/tests/testfinddeclaration.pas +++ b/components/codetools/tests/testfinddeclaration.pas @@ -102,6 +102,7 @@ type procedure TestFindDeclaration_Attributes; procedure TestFindDeclaration_BracketOpen; procedure TestFindDeclaration_AnonymProc; + procedure TestFindDeclaration_AnonymProc_ExprDot; // test all files in directories: procedure TestFindDeclaration_FPCTests; procedure TestFindDeclaration_LazTests; @@ -952,7 +953,7 @@ begin ' end;', ' DoIt(function(i: int{declaration:int}): int{declaration:int}', ' begin', - ' a{declaration:doit.a}:=b{declaration:doit.sub.b}+c{declaration:doit.sub.$ano.c};', + ' a{declaration:doit.a}:=b{declaration:doit.sub.b}+i{declaration:doit.sub.$ano.i};', ' end);', ' end;', 'begin', @@ -963,6 +964,31 @@ begin FindDeclarations(Code); end; +procedure TTestFindDeclaration.TestFindDeclaration_AnonymProc_ExprDot; +begin + StartProgram; + Add([ + '{$mode objfpc}{$modeswitch closures}', + 'type', + ' int = word;', + ' TFunc = function(i: int): int;', + 'var f: TFunc;', + 'function DoIt(f: TProc): TObject{declaration:system.tobject};', + 'begin', + ' DoIt(nil).ClassInfo{declaration:system.tobject.classinfo};', + ' DoIt(function(c: int{declaration:int}): int{declaration:int}', + ' begin', + ' repeat until true;', + ' asm end;', + ' try except end;', + ' end).ClassInfo{declaration:system.tobject.classinfo};', + 'end;', + 'begin', + 'end.', + '']); + FindDeclarations(Code); +end; + procedure TTestFindDeclaration.TestFindDeclaration_FPCTests; begin TestFiles('fpctests');