Bug 10888 – std.range.RefRange does not forward all methods/properties of underlying range

Status
NEW
Severity
normal
Priority
P3
Component
phobos
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-08-25T04:55:04Z
Last change time
2024-12-01T16:18:38Z
Assigned to
No Owner
Creator
Joseph Rushton Wakeling
Moved to GitHub: phobos#9613 →

Attachments

IDFilenameSummaryContent-TypeSize
1244refrange.dExample with std.random.Random wrapped by RefRange. .min and .max properties are not forwarded.text/x-dsrc801

Comments

Comment #0 by joseph.wakeling — 2013-08-25T04:55:04Z
Created attachment 1244 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.
Comment #1 by hsteoh — 2013-08-26T22:01:01Z
This is where it would be nice if the language supported alias *p this. :)
Comment #2 by joseph.wakeling — 2015-07-26T11:45:54Z
See also Issue #14830 for a similarly problematic issue with RNGs and RefCounted.
Comment #3 by robert.schadek — 2024-12-01T16:18:38Z
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