summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-04-26 21:16:28 +0000
committermattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-04-26 21:16:28 +0000
commitadf6fe1a1c2d65db849fb1938d570bc5c6c4504b (patch)
treefcb694c8a6a7de4739fc1e852adeeeca244a9482
parentb17ec5f5891689aea80ca036d221d277bec8c65a (diff)
downloadfpc-adf6fe1a1c2d65db849fb1938d570bc5c6c4504b.tar.gz
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
-rw-r--r--packages/fcl-passrc/src/pasresolver.pp13
1 files 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;