https://issues.dlang.org/show_bug.cgi?id=17065
--- Comment #2 from dran...@gmail.com --- (In reply to greenify from comment #1) > > If this behaviour is intended, the doc should state it. > > This should definitely have gotten a proper changelog entry (and deprecation > warning). > However, I am not really convinced that it should be noted in the > documentation that access to private member variables isn't supported as > this is the way visibility is supposed to work in D. Did anything lead you > to this assumption or was it just by chance that accessing `private` > variables worked and you didn't realize until the hole was fixed? Private members are supposed to be accessible in the module where the type is declared (module-level encapsulation). A type constructor like `Unique` should return a type with the same access behavior. RefCounted works as I expect (but maybe I have wrong expectations...): --- import std.typecons : RefCounted; struct Foo { private int i; } void main() { RefCounted!Foo foo = Foo(1); foo.i = 2; // OK } --- --