On windows I was able to compile the following using both dmd.2.075.1 and dmd.2.076.1

From what I understand, you shouldn't be able to access private fields/methods like this...am I missing something? I find it hard to believe that a bug of this magnitudue could have been introduced and not been noticed for so long. Does this compile on other people's systems as well?

import std.stdio;
struct SomeStruct
{
    private int privateValue;
    private void privateFunction()
    {
    }
}
class SomeClass
{
    private int privateValue;
    private void privateFunction()
    {
    }
}
void main()
{
    auto someStruct = SomeStruct(42);
writefln("someStruct.privateValue = %s", someStruct.privateValue);
    someStruct.privateFunction();

    auto someStructRef = new SomeStruct(42);
writefln("someStructRef.privateValue = %s", someStructRef.privateValue);
    someStruct.privateFunction();

    auto someClass = new SomeClass();
writefln("someClass.privateValue = %s", someClass.privateValue);
    someClass.privateFunction();
}

Reply via email to