February 26, 2021
https://issues.dlang.org/show_bug.cgi?id=10619
Issue 10619 depends on issue 14831, which changed state.

Issue 14831 Summary: Each function local symbols should have unique mangled name https://issues.dlang.org/show_bug.cgi?id=14831

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|WORKSFORME                  |---

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

moonlightsentinel@disroot.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
                 CC|                            |moonlightsentinel@disroot.o
                   |                            |rg
         Resolution|DUPLICATE                   |---

--- Comment #7 from moonlightsentinel@disroot.org ---
This issue remains when when (static) variables receive different manglings
(see [1][2]).

The problem is that the compiler treats those template instances as duplicates due to the bug in `Dsymbol.equals`.

[1] https://github.com/dlang/dmd/pull/12119
[2] https://github.com/dlang/dmd/pull/12235

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

moonlightsentinel@disroot.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Ambiguous mangling of local |Wrong local variable passed
                   |variable alias arguments to |as alias arguments to
                   |templates                   |templates

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

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

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

--- Comment #8 from Dlang Bot <dlang-bot@dlang.rocks> ---
@MoonlightSentinel updated dlang/dmd pull request #12236 "Fix 10619 - Wrong local variable passed as alias arguments to templates" fixing this issue:

- Fix 10619 - Wrong local variable passed as alias arguments to templates

  PR #12119 introduced `localNum` to differentiate between multiple
  symbols with identical names. But `Dsymbol.equals` doesn't consider
  this variable when comparing two Dsymbols.

  This caused template semantic to treat the second instantiation of
  `foo` as a duplice in the following example:

  ```d
  void main()
  {
      {
          int x = 1;
          foo!x();
      }
      {
          int x = 2;
          foo!x();
      }
  }
  ```

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

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

Ketmar Dark <ketmar@ketmar.no-ip.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ketmar@ketmar.no-ip.org

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

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

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

--- Comment #9 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/dmd pull request #12236 "Fix 10619 - Wrong local variable passed as alias arguments to templates" was merged into stable:

- 9f980f52e6d798c06e6b7da55e12cf25882cc757 by MoonlightSentinel:
  Fix 10619 - Wrong local variable passed as alias arguments to templates

  PR #12119 introduced `localNum` to differentiate between multiple
  symbols with identical names. But `Dsymbol.equals` doesn't consider
  this variable when comparing two Dsymbols.

  This caused template semantic to treat the second instantiation of
  `foo` as a duplice in the following example:

  ```d
  void main()
  {
      {
          int x = 1;
          foo!x();
      }
      {
          int x = 2;
          foo!x();
      }
  }
  ```

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

--
March 01, 2021
https://issues.dlang.org/show_bug.cgi?id=10619
Issue 10619 depends on issue 14831, which changed state.

Issue 14831 Summary: Each function local symbols should have unique mangled name https://issues.dlang.org/show_bug.cgi?id=14831

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

--
March 06, 2021
https://issues.dlang.org/show_bug.cgi?id=10619

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

- 0c2d8bd2abf22476acf98065252559145c481fef by MoonlightSentinel:
  Fix 10619 - Wrong local variable passed as alias arguments to templates

  PR #12119 introduced `localNum` to differentiate between multiple
  symbols with identical names. But `Dsymbol.equals` doesn't consider
  this variable when comparing two Dsymbols.

  This caused template semantic to treat the second instantiation of
  `foo` as a duplice in the following example:

  ```d
  void main()
  {
      {
          int x = 1;
          foo!x();
      }
      {
          int x = 2;
          foo!x();
      }
  }
  ```

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

--
1 2
Next ›   Last »