From adf6fe1a1c2d65db849fb1938d570bc5c6c4504b Mon Sep 17 00:00:00 2001 From: mattias Date: Mon, 26 Apr 2021 21:16:28 +0000 Subject: fcl-passrc: fixed (intf as tobject).ClassType, issue 38805 git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49272 3ad0048d-3df7-0310-abae-a5850022a9f2 --- packages/fcl-passrc/src/pasresolver.pp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/fcl-passrc/src/pasresolver.pp b/packages/fcl-passrc/src/pasresolver.pp index e726e9a5c5..b13ffd7baa 100644 --- a/packages/fcl-passrc/src/pasresolver.pp +++ b/packages/fcl-passrc/src/pasresolver.pp @@ -25546,6 +25546,7 @@ function TPasResolver.ResolvedElIsClassOrRecordInstance( const ResolvedEl: TPasResolverResult): boolean; var TypeEl: TPasType; + C: TClass; begin Result:=false; if ResolvedEl.BaseType<>btContext then exit; @@ -25558,10 +25559,14 @@ begin else if TypeEl.ClassType=TPasRecordType then else exit; - if (ResolvedEl.IdentEl is TPasVariable) - or (ResolvedEl.IdentEl.ClassType=TPasArgument) - or (ResolvedEl.IdentEl.ClassType=TPasResultElement) then - exit(true); + if ResolvedEl.IdentEl<>nil then + begin + C:=ResolvedEl.IdentEl.ClassType; + if C.InheritsFrom(TPasVariable) + or (C=TPasArgument) + or (C=TPasResultElement) then + exit(true); + end; end; function TPasResolver.GetResolver(El: TPasElement): TPasResolver; -- cgit v1.2.1