diff options
-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; |