Thread overview
[Issue 21591] Mangling problem wrt. backrefs and function types
Jan 29, 2021
kinke
Jan 29, 2021
Dlang Bot
Feb 04, 2021
Dlang Bot
Feb 13, 2021
Dlang Bot
January 29, 2021
https://issues.dlang.org/show_bug.cgi?id=21591

--- Comment #1 from kinke <kinke@gmx.net> ---
Looking at dmd/dmangle.d, some missing type merge must be causing this (the backrefs depend on equivalent types sharing the same `Type` instance).

--
January 29, 2021
https://issues.dlang.org/show_bug.cgi?id=21591

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

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

--- Comment #2 from Dlang Bot <dlang-bot@dlang.rocks> ---
@kinke created dlang/dmd pull request #12166 "[stable] Fix Issue 21591 - missed backrefs in mangled names wrt. unmerged function types" fixing this issue:

- Fix Issue 21591 - missed backrefs in mangled names wrt. unmerged function types

  TypeFunctions are apparently special and not merged, so make sure to
  use the generic merged function type as backref cache key.

  Unfortunately, this requires special care to prevent an infinite
  recursion, as merging is based on mangling.

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

--
February 04, 2021
https://issues.dlang.org/show_bug.cgi?id=21591

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 #12166 "[stable] Fix Issue 21591 - missed backrefs in mangled names wrt. unmerged function types" was merged into stable:

- 580d65d61e75b9a3724981a52ae67dcc0d9010bd by Martin Kinkelin:
  Fix Issue 21591 - missed backrefs in mangled names wrt. unmerged function
types

  TypeFunctions are apparently special and not merged, so make sure to
  use the generic merged function type as backref cache key.

  Unfortunately, this requires special care to prevent an infinite
  recursion, as merging is based on mangling.

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

--
February 13, 2021
https://issues.dlang.org/show_bug.cgi?id=21591

--- Comment #4 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/dmd pull request #12195 "Merge stable" was merged into master:

- d8668e1afa3c89d2ed50a86d7e495f9aa860e5bf by Martin Kinkelin:
  Fix Issue 21591 - missed backrefs in mangled names wrt. unmerged function
types (#12166)

  TypeFunctions are apparently special and not merged, so make sure to
  use the generic merged function type as backref cache key.

  Unfortunately, this requires special care to prevent an infinite
  recursion, as merging is based on mangling.

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

--