diff options
author | mattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2021-04-26 21:16:28 +0000 |
---|---|---|
committer | mattias <mattias@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2021-04-26 21:16:28 +0000 |
commit | adf6fe1a1c2d65db849fb1938d570bc5c6c4504b (patch) | |
tree | fcb694c8a6a7de4739fc1e852adeeeca244a9482 | |
parent | b17ec5f5891689aea80ca036d221d277bec8c65a (diff) | |
download | fpc-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.pp | 13 |
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; |