diff --git a/CMakeLists.txt b/CMakeLists.txt index fae43ebfcc4..35ad95470b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -113,7 +113,7 @@ set(LDC_VERSION "1.25.0") # May be overridden by git hash tag set(DMDFE_MAJOR_VERSION 2) set(DMDFE_MINOR_VERSION 0) set(DMDFE_PATCH_VERSION 95) -set(DMDFE_FIX_LEVEL 0) +set(DMDFE_FIX_LEVEL 1) set(DMD_VERSION ${DMDFE_MAJOR_VERSION}.${DMDFE_MINOR_VERSION}${DMDFE_PATCH_VERSION}) if(DEFINED DMDFE_FIX_LEVEL) diff --git a/dmd/semantic2.d b/dmd/semantic2.d index 363c7a1c660..ba55e76b100 100644 --- a/dmd/semantic2.d +++ b/dmd/semantic2.d @@ -362,6 +362,16 @@ private extern(C++) final class Semantic2Visitor : Visitor { if (fd.semanticRun >= PASS.semantic2done) return; + + if (fd.semanticRun < PASS.semanticdone && !fd.errors) + { + /* https://issues.dlang.org/show_bug.cgi?id=21614 + * + * Template instances may import modules that have not + * finished semantic1. + */ + fd.dsymbolSemantic(sc); + } assert(fd.semanticRun <= PASS.semantic2); fd.semanticRun = PASS.semantic2; diff --git a/runtime/druntime b/runtime/druntime index fb6a14bf006..a90e0ea889e 160000 --- a/runtime/druntime +++ b/runtime/druntime @@ -1 +1 @@ -Subproject commit fb6a14bf006b6899d5ebeee1741e3a8e4be2323a +Subproject commit a90e0ea889e3502735927945a80dc04dcaac9c54 diff --git a/tests/d2/dmd-testsuite b/tests/d2/dmd-testsuite index 8d47ee26603..f862d0abea5 160000 --- a/tests/d2/dmd-testsuite +++ b/tests/d2/dmd-testsuite @@ -1 +1 @@ -Subproject commit 8d47ee26603c90c7e8eee46b808dcad854187755 +Subproject commit f862d0abea559ca48697b6dc2223635535be64ab