[Issue 14575] New: compile error with std.range.refRange when front/back isn't implicitly convertible from const to mutable
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Mon May 11 10:49:13 PDT 2015
https://issues.dlang.org/show_bug.cgi?id=14575
Issue ID: 14575
Summary: compile error with std.range.refRange when front/back
isn't implicitly convertible from const to mutable
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P1
Component: Phobos
Assignee: nobody at puremagic.com
Reporter: ag0aep6g at gmail.com
----
import std.range;
struct R
{
Object front;
alias back = front;
bool empty = false;
void popFront() {empty = true;}
alias popBack = popFront;
@property R save() {return this;}
}
static assert(isBidirectionalRange!R);
void main()
{
R r;
auto rr = refRange(&r);
}
----
/home/test/d/dmd2/linux/bin64/../../src/phobos/std/range/package.d(7668):
Error: cannot implicitly convert expression ((*this._range).front) of type
const(Object) to object.Object
/home/test/d/dmd2/linux/bin64/../../src/phobos/std/range/package.d(7790):
Error: cannot implicitly convert expression ((*this._range).front) of type
const(Object) to object.Object
/home/test/d/dmd2/linux/bin64/../../src/phobos/std/range/package.d(8281):
Error: template instance std.range.RefRange!(R) error instantiating
test.d(17): instantiated from here: refRange!(R)
----
Pull request incoming.
--
More information about the Digitalmars-d-bugs
mailing list