www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 9690] New: cannot access to disable'd symbol from inner function of another disable'd

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9690

           Summary: cannot access to  disable'd symbol from inner function
                    of another  disable'd
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: rejects-valid
          Severity: minor
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: kekeniro2 yahoo.co.jp



This code does not work.

 disable {
    void dep() { }
    void main() {
        dep();     // OK
        void inner() {
            dep(); // cannot call dep
        }
    }
}

When you replace ' disable' with 'deprecated', it works. ( even with -de )
I believe that both ' disable' and 'deprecated' should work in the same way.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 11 2013
parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9690


Andrej Mitrovic <andrej.mitrovich gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andrej.mitrovich gmail.com,
                   |                            |k.hara.pg gmail.com



17:06:35 PDT ---
The problem is that  disable does not work recursively, 'inner' is not actually
disabled. You can verify this by marking 'inner' with  disable.

I'm not sure if it's supposed to be this way. Kenji?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 11 2013