Browse Source

* all checking for visibility is now done by is_visible_for_object

peter 21 years ago
parent
commit
1bb51a2667
2 changed files with 9 additions and 12 deletions
  1. 4 10
      compiler/pexpr.pas
  2. 5 2
      compiler/symtable.pas

+ 4 - 10
compiler/pexpr.pas

@@ -1194,15 +1194,6 @@ implementation
             end;
 
             begin
-              { check semantics of private }
-              if (srsym.typ in [propertysym,procsym,varsym]) and
-                 (srsym.owner.symtabletype=objectsymtable) then
-               begin
-                 if (sp_private in srsym.symoptions) and
-                    (tobjectdef(srsym.owner.defowner).owner.symtabletype=globalsymtable) and
-                    (tobjectdef(srsym.owner.defowner).owner.unitid<>0) then
-                   Message(parser_e_cant_access_private_member);
-               end;
               case srsym.typ of
                 absolutesym :
                   begin
@@ -2490,7 +2481,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.164  2004-10-12 14:35:47  peter
+  Revision 1.165  2004-10-12 19:51:13  peter
+    * all checking for visibility is now done by is_visible_for_object
+
+  Revision 1.164  2004/10/12 14:35:47  peter
     * cstyle operators with calln in the tree now use a temp
 
   Revision 1.163  2004/08/25 15:58:36  peter

+ 5 - 2
compiler/symtable.pas

@@ -1247,7 +1247,7 @@ implementation
                hsym:=search_class_member(tobjectdef(next.next.defowner),sym.name);
                if assigned(hsym) and
                  { private ids can be reused }
-                  (not(sp_private in hsym.symoptions) or
+                  (hsym.is_visible_for_object(tobjectdef(next.next.defowner)) or
                    (hsym.owner.defowner.owner.symtabletype<>globalsymtable)) then
                 begin
                   { delphi allows to reuse the names in a class, but not
@@ -2314,7 +2314,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.157  2004-10-11 15:48:15  peter
+  Revision 1.158  2004-10-12 19:51:13  peter
+    * all checking for visibility is now done by is_visible_for_object
+
+  Revision 1.157  2004/10/11 15:48:15  peter
     * small regvar for para fixes
     * function tvarsym.is_regvar added
     * tvarsym.getvaluesize removed, use getsize instead