On Thursday, 28 August 2025 at 11:54:10 UTC, Brother Bill wrote:
If line 9 of the program is commented out, it runs fine.
Otherwise lots of error messages which don't pan out for me.
I tried changing Negative.front to be const, which didn't help.
I am not quite sure what the error messages are telling me.
Thank you for your assistance!
```
C:\D\dmd2\windows\bin64\..\..\src\phobos\std\range\package.d(4560): Error:
mutable method `app.Negative!(Take!(FibonacciSeries)).Negative.front` is not
callable using a `const` object
return _current.front;
^
c:\dev\D\81 -
90\c82_1e_InputRange_does_support_cycle_with_save\source\app.d(44): Consider adding `const` or `inout` here
auto front()
^
C:\D\dmd2\windows\bin64\..\..\src\phobos\std\range\package.d(4695): Error:
template instance `std.range.Cycle!(Negative!(Take!(FibonacciSeries)))` error
instantiating
else return Cycle!R(input);
^
c:\dev\D\81 -
90\c82_1e_InputRange_does_support_cycle_with_save\source\app.d(9): instantiated from here: `cycle!(Negative!(Take!(FibonacciSeries)))`
.cycle // ← compilation ERROR
^
```
This looks like a bug in the library or the compiler.
This code is the code that is failing:
```d
static if (is(typeof((cast(const R)_current).front)))
{
/// ditto
@property auto ref front() const
{
return _current.front;
}
}
```
What the intent looks to me like is, if `_current.front` can be
called on a const object, then we can forward the const-ness by
declaring a const-allowing `front` function.
Well, looking at the `Negative.front` function, I see no
attribute of `const`.
There is something sutble here as well. `is(typeof(funcname))`
does not check if `funcname` is valid as an *expression*, but as
a *symbol*.
And part of this also is that you are forming an rvalue, which
has different implications for pure value types (which this whole
thing is).
If I change that test to `static if (is(typeof((cast(const
R*)&_current).front)))` then the code works. But I'm not sure if
there's still not a compiler bug somewhere.
Will file an issue, and we should get this fixed.
-Steve