Thread overview
[Issue 20470] accessing an AliasSeq tuple loses `this`
Jan 01, 2020
Dlang Bot
Mar 10, 2020
Dlang Bot
December 31, 2019
https://issues.dlang.org/show_bug.cgi?id=20470

--- Comment #1 from Suleyman Sahmi (سليمان السهمي) <sahmi.soulaimane@gmail.com> ---
If a member tuple contains functions and this tuple is unpacked with a foreach statement then there is current usage that would break if `this` is preserved.

```
alias AliasSeq(Args...) = Args;
struct S
{
    void f() {}
    alias funcs = AliasSeq!(f);
}

unittest
{
    S obj;
    foreach (f; obj.funcs) // obj.funcs is expanded into S.f not obj.f
        pragma(msg, typeof(f));
}
```

--
January 01, 2020
https://issues.dlang.org/show_bug.cgi?id=20470

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #2 from Dlang Bot <dlang-bot@dlang.rocks> ---
@SSoulaimane updated dlang/dmd pull request #10702 "Fix issue 20470 - Keep `this` when accessing tuple members" fixing this issue:

- Fix issue 20470 - Keep `this` when accessing tuple members

  Expand `m.tuple(a, b)` into `tuple(m.a, m.b)`

https://github.com/dlang/dmd/pull/10702

--
March 10, 2020
https://issues.dlang.org/show_bug.cgi?id=20470

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #3 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/dmd pull request #10702 "Fix issue 20470 - Keep `this` when accessing tuple members" was merged into master:

- 33941f0400ed0842cbfc68bd43295b948691a5f8 by سليمان السهمي  (Suleyman Sahmi):
  Fix issue 20470 - Keep `this` when accessing tuple members

  Expand `m.tuple(a, b)` into `tuple(m.a, m.b)`

https://github.com/dlang/dmd/pull/10702

--