10.01.2011 1:47, Andrew Brunner wrote:
   Type
     NS_APP=class
       const
         const1=2;
         const3=5;
       type
         NS_SPACE1=class
           type
             Properties=(Name,Value);
             TMyRecord=record
               ID : integer;
               Name:string;
               Value:string;
             end;
         end;
         NS_SPACE2=class
           type
             Properties=(Name,Value); // Duplicate Identifer "Name"
error @ compile
             TMyRecord=record
               Key : Array[0..1] of Byte;
               Value : Pointer;
             end;
         end;
     end;
This is by design. Enumeration members are added both to the unit and enumration symbol table and therefore can't have equal names. If you want to prevent adding them to the unit symbol table use {$SCOPEDENUMS ON} directive. Then you will need to access them using prefixes only. Like NS_APP.NS_SPACE1.Properties.Name.

Best regards,
Paul Ishenin
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to