瀏覽代碼

fcl-passrc: resolver: fixed name[][] for default property and adv record class var

git-svn-id: trunk@41123 -
Mattias Gaertner 6 年之前
父節點
當前提交
d5632392d0
共有 1 個文件被更改,包括 11 次插入3 次删除
  1. 11 3
      packages/fcl-passrc/src/pasresolver.pp

+ 11 - 3
packages/fcl-passrc/src/pasresolver.pp

@@ -9285,6 +9285,7 @@ begin
     ComputeElement(SubParams,ResolvedEl,[rcNoImplicitProc,rcSetReferenceFlags]);
     if Value.CustomData=nil then
       CreateReference(ResolvedEl.LoTypeEl,Value,Access);
+    ResolvedEl.IdentEl:=nil;
     end
   else if Value.InheritsFrom(TUnaryExpr) then
     begin
@@ -21857,10 +21858,17 @@ begin
 end;
 
 function TPasResolver.IsClassField(El: TPasElement): boolean;
+var
+  C: TClass;
 begin
-  Result:=((El.ClassType=TPasVariable) or (El.ClassType=TPasConst))
-    and ([vmClass,vmStatic]*TPasVariable(El).VarModifiers<>[])
-    and (El.Parent is TPasClassType);
+  if ((El.ClassType=TPasVariable) or (El.ClassType=TPasConst))
+      and ([vmClass,vmStatic]*TPasVariable(El).VarModifiers<>[]) then
+    begin
+    C:=El.Parent.ClassType;
+    Result:=(C=TPasClassType) or (C=TPasRecordType);
+    end
+  else
+    Result:=false;
 end;
 
 function TPasResolver.GetFunctionType(El: TPasElement): TPasFunctionType;