Created attachment 1244 [details] Example with std.random.Random wrapped by RefRange. .min and .max properties are not forwarded. When a range is wrapped by RefRange, _all_ the public methods and properties should be forwarded. The attached example shows a case where std.random.Random is wrapped by RefRange. The regular range methods/properties are correctly forwarded, but the .min and .max properties of Random are not, and the code fails with the errors: refrange.d(26): Error: no property 'min' for type 'RefRange!(MersenneTwisterEngine!(uint, 32, 624, 397, 31, 2567483615u, 11, 7, 2636928640u, 15, 4022730752u, 18))' refrange.d(27): Error: no property 'max' for type 'RefRange!(MersenneTwisterEngine!(uint, 32, 624, 397, 31, 2567483615u, 11, 7, 2636928640u, 15, 4022730752u, 18))' Desired behaviour: .min and .max properties should be present for RefRange!Random.
This is where it would be nice if the language supported alias *p this. :)
See also Issue #14830 for a similarly problematic issue with RNGs and RefCounted.
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/phobos/issues/9613 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB