On Sunday, 4 March 2018 at 20:07:06 UTC, visitor wrote:
On Sunday, 4 March 2018 at 19:53:59 UTC, ag0aep6g wrote:
On 03/04/2018 08:45 PM, ag0aep6g wrote:
I don't know what's going on here. The error message doesn't
make sense to me. Might be a bug in the compiler.
This one works:
----
struct Stack(T) {
T[] stack;
alias stack this;
bool empty() {return empty(stack);} /* not using UFCS */
import std.array: empty; /* has to come after the method */
}
----
Looks very much like a compiler bug now. As far as I know, the
order of declarations shouldn't have an effect like that in
structs. And UFCS should also be ok there, as far as I can
tell.
?????
https://run.dlang.io/is/Ws0qEx
https://run.dlang.io/is/Bancgx
struct Stack(T) {
import std.array: empty;
T[] stack;
alias stack this;
bool empty() { return empty(stack); }
}
void main()
{
Stack!int stack;
//bool x = stack.empty; // fails
bool x = stack.empty(); // works
}