Thread overview
[Issue 20758] __traits(getAttributes) as template argument results in broken template instances
May 23, 2020
Basile-z
May 23, 2020
Dlang Bot
May 24, 2020
Dlang Bot
May 23, 2020
https://issues.dlang.org/show_bug.cgi?id=20758

Basile-z <b2.temp@gmx.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |rejects-valid

--
May 23, 2020
https://issues.dlang.org/show_bug.cgi?id=20758

moonlightsentinel@disroot.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |moonlightsentinel@disroot.o
                   |                            |rg

--- Comment #1 from moonlightsentinel@disroot.org ---
The runtime assertion failure is actually a regression from 2.069, introduced by this PR: https://github.com/dlang/dmd/pull/4866

--
May 23, 2020
https://issues.dlang.org/show_bug.cgi?id=20758

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

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

--- Comment #2 from Dlang Bot <dlang-bot@dlang.rocks> ---
@NilsLankila created dlang/dmd pull request #11183 "fix issue 20758 - __traits(getAttributes) as template argument result…" fixing this issue:

- fix issue 20758 - __traits(getAttributes) as template argument results in
broken template instances

  Using a `TupleExp` obtained by a `__traits` had for effect to instantiate a
template with a `VarExp` that was never translated to a D symbol.
  The fix is to do the translation only when the var is for a function, which
means that the intention is not to instantiate using the function *result* but
well the function itself.

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

--
May 24, 2020
https://issues.dlang.org/show_bug.cgi?id=20758

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 #11183 "fix issue 20758 - __traits(getAttributes) as template argument result…" was merged into stable:

- 5ef80bb6fdfeb538c4d28eaede8a6c8d16c53dcf by Nils Lankila:
  fix issue 20758 - __traits(getAttributes) as template argument results in
broken template instances

  Using a `TupleExp` obtained by a `__traits` had for effect to instantiate a
template with a `VarExp` that was never translated to a D symbol.
  The fix is to do the translation only when the var is for a function, which
means that the intention is not to instantiate using the function *result* but
well the function itself.

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

--