[Issue 547] New: Accessing a deprecated member variable through an explicit object reference is not caught

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Nov 17 12:05:57 PST 2006


http://d.puremagic.com/issues/show_bug.cgi?id=547

           Summary: Accessing a deprecated member variable through an
                    explicit object reference is not caught
           Product: D
           Version: 0.174
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: accepts-invalid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: smjg at iname.com


The following code accesses the deprecated members of the class in different
ways.  The body of the function test thus contains no legal statement (if
compiling without -d) but nonetheless compiles without error.

----------
import std.stdio;

class ClassWithDeps {
    deprecated int value;
    deprecated static int staticValue;

    void test(ClassWithDeps obj) {
        obj.value = 666;
        obj.staticValue = 102;
        this.value = 666;
        this.staticValue = 103;
        ClassWithDeps.staticValue = 104;
        writefln(obj.value);
        writefln(obj.staticValue);
        writefln(this.value);
        writefln(this.staticValue);
        writefln(ClassWithDeps.staticValue);
    }
}
----------

The same happens if a struct or union is used instead of a class.


-- 




More information about the Digitalmars-d-bugs mailing list