// https://issues.dlang.org/show_bug.cgi?id=21674 // REQUIRED_ARGS: -de struct Module { CachedString data; } struct CachedString { private size_t len; this (string data) { this.len = data.length; } public string str () const { return null; } public void str (string value) { this.len = value.length; } alias str this; } void test21674a() { Module m; m.data = "Hello World"; } ////////////////////////////////////////// struct StaticGetter(T) { private static T _impl; static ref T value() { return _impl; } alias value this; } struct StaticWrapper { StaticGetter!int get; alias get this; } void test21674b() { StaticGetter!float sg; sg = 4.2; StaticWrapper sw; sw = 42; } ////////////////////////////////////////// EntryType arr; auto getPtr() { return &arr; } struct EntryType { bool _state; alias _state this; } struct S19441 { @property auto ref entry() { return *getPtr(); } alias entry this; } void test19441() { S19441 s19441; s19441 = true; }