On Tuesday, 23 January 2018 at 23:22:09 UTC, Steven Schveighoffer
wrote:
So, if change the fun to static, it cannot pickup the pointer
and therefore can't call anything of the aliased object. If I
get it right...
I think so. But this is a guess, as the generated call clearly
never uses that
On 1/23/18 6:08 PM, Alex wrote:
On Tuesday, 23 January 2018 at 22:59:31 UTC, Steven Schveighoffer wrote:
On 1/23/18 5:52 PM, Steven Schveighoffer wrote:
I don't know the reason. You would think that accessing s would be
relative to T.fun's stack frame, and have nothing to do with an
instance o
On Tuesday, 23 January 2018 at 22:59:31 UTC, Steven Schveighoffer
wrote:
On 1/23/18 5:52 PM, Steven Schveighoffer wrote:
I don't know the reason. You would think that accessing s
would be relative to T.fun's stack frame, and have nothing to
do with an instance of T.
using -vcg-ast gives a h
On 1/23/18 5:52 PM, Steven Schveighoffer wrote:
I don't know the reason. You would think that accessing s would be
relative to T.fun's stack frame, and have nothing to do with an instance
of T.
using -vcg-ast gives a hint:
https://run.dlang.io/is/MZHPTY
Note that the T!(s) struct has a voi
On Tuesday, 23 January 2018 at 22:52:47 UTC, Steven Schveighoffer
wrote:
No:
void main()
{
auto s = S();
auto t = T!s();
t.fun;
}
struct S { void fun(){} }
struct T(alias s){ static fun() { s.fun; } }
Fails in 2.078.
I don't know the reason. You would think that accessing s would
On 1/23/18 5:33 PM, Ali Çehreli wrote:
On 01/23/2018 01:51 PM, Alex wrote:
> Ok, I'm quite sure, I overlooked something.
>
> First version, working
>
> [code]
> void main()
> {
> auto s = S();
> auto t = T!s();
> t.fun;
> }
> struct S { void fun(){} }
> struct T(alias
On Tuesday, 23 January 2018 at 22:33:31 UTC, Ali Çehreli wrote:
On 01/23/2018 01:51 PM, Alex wrote:
> Ok, I'm quite sure, I overlooked something.
>
> First version, working
>
> [code]
> void main()
> {
> auto s = S();
> auto t = T!s();
> t.fun;
> }
> struct S { void fun(){} }
> str
On 01/23/2018 01:51 PM, Alex wrote:
> Ok, I'm quite sure, I overlooked something.
>
> First version, working
>
> [code]
> void main()
> {
> auto s = S();
> auto t = T!s();
> t.fun;
> }
> struct S { void fun(){} }
> struct T(alias s){ auto fun() { s.fun; } }
> [/code]
>
> Now, the fu
Ok, I'm quite sure, I overlooked something.
First version, working
[code]
void main()
{
auto s = S();
auto t = T!s();
t.fun;
}
struct S { void fun(){} }
struct T(alias s){ auto fun() { s.fun; } }
[/code]
Now, the fun method of struct T has to become static and the
probl