[pkg-d-commits] [ldc] 17/211: Merge ddmd tag 2.071.2-b6

Matthias Klumpp mak at moszumanska.debian.org
Sun Apr 23 22:36:05 UTC 2017


This is an automated email from the git hooks/post-receive script.

mak pushed a commit to annotated tag v1.1.0
in repository ldc.

commit d48b80996d936caa9c13a8596f2d3e0f05ba937c
Author: Johan Engelen <jbc.engelen at gmail.com>
Date:   Sat Sep 17 15:22:13 2016 +0200

    Merge ddmd tag 2.071.2-b6
---
 CMakeLists.txt         |  2 +-
 ddmd/dscope.d          | 20 ++++++++++++++++++--
 ddmd/dsymbol.d         |  4 ----
 tests/d2/dmd-testsuite |  2 +-
 4 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a9c0100..ed6e2a8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -58,7 +58,7 @@ set(LDC_VERSION "1.0.0") # May be overridden by git hash tag
 set(DMDFE_MAJOR_VERSION   2)
 set(DMDFE_MINOR_VERSION   0)
 set(DMDFE_PATCH_VERSION   71)
-set(DMDFE_FIX_LEVEL       2-b2) # Comment out if not used
+set(DMDFE_FIX_LEVEL       2-b6) # Comment out if not used
 
 set(DMD_VERSION ${DMDFE_MAJOR_VERSION}.${DMDFE_MINOR_VERSION}${DMDFE_PATCH_VERSION})
 if(DEFINED DMDFE_FIX_LEVEL)
diff --git a/ddmd/dscope.d b/ddmd/dscope.d
index fdb06c2..e9b6056 100644
--- a/ddmd/dscope.d
+++ b/ddmd/dscope.d
@@ -584,14 +584,30 @@ else
      */
     extern (C++) static void deprecation10378(Loc loc, Dsymbol sold, Dsymbol snew)
     {
+        // Bugzilla 15857
+        //
+        // The overloadset found via the new lookup rules is either
+        // equal or a subset of the overloadset found via the old
+        // lookup rules, so it suffices to compare the dimension to
+        // check for equality.
+        OverloadSet osold, osnew;
+        if (sold && (osold = sold.isOverloadSet()) !is null &&
+            snew && (osnew = snew.isOverloadSet()) !is null &&
+            osold.a.dim == osnew.a.dim)
+            return;
+
         OutBuffer buf;
         buf.writestring("local import search method found ");
-        if (sold)
+        if (osold)
+            buf.printf("%s %s (%d overloads)", sold.kind(), sold.toPrettyChars(), cast(int) osold.a.dim);
+        else if (sold)
             buf.printf("%s %s", sold.kind(), sold.toPrettyChars());
         else
             buf.writestring("nothing");
         buf.writestring(" instead of ");
-        if (snew)
+        if (osnew)
+            buf.printf("%s %s (%d overloads)", snew.kind(), snew.toPrettyChars(), cast(int) osnew.a.dim);
+        else if (snew)
             buf.printf("%s %s", snew.kind(), snew.toPrettyChars());
         else
             buf.writestring("nothing");
diff --git a/ddmd/dsymbol.d b/ddmd/dsymbol.d
index 53c7939..46e1f4b 100644
--- a/ddmd/dsymbol.d
+++ b/ddmd/dsymbol.d
@@ -1407,11 +1407,7 @@ public:
                 if (a)
                 {
                     if (!s.isOverloadSet())
-                    {
                         a = mergeOverloadSet(ident, a, s);
-                        if (symtab)
-                            symtabInsert(a);    // Bugzilla 15857
-                    }
                     s = a;
                 }
                 // TODO: remove once private symbol visibility has been deprecated
diff --git a/tests/d2/dmd-testsuite b/tests/d2/dmd-testsuite
index 568d05d..eeebe9a 160000
--- a/tests/d2/dmd-testsuite
+++ b/tests/d2/dmd-testsuite
@@ -1 +1 @@
-Subproject commit 568d05dcb9a169c7a91860269b8508735758bb83
+Subproject commit eeebe9a301ec05fb5dbdb79f2b567f2061943790

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-d/ldc.git



More information about the pkg-d-commits mailing list