summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;