From f6ee8c825b367e79fe6483632281d874df5d9813 Mon Sep 17 00:00:00 2001 From: Sergii K Date: Wed, 23 Jul 2025 01:57:06 +0300 Subject: [PATCH] Fix template parameter deduction calls --- compiler/src/dmd/dtemplate.d | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/compiler/src/dmd/dtemplate.d b/compiler/src/dmd/dtemplate.d index 0427845aa9b6..ec84ca4cf9cc 100644 --- a/compiler/src/dmd/dtemplate.d +++ b/compiler/src/dmd/dtemplate.d @@ -2107,12 +2107,12 @@ MATCH deduceType(RootObject o, Scope* sc, Type tparam, ref TemplateParameters pa while (s && s.baseclasses.length > 0) { // Test the base class - deduceBaseClassParameters(*(*s.baseclasses)[0], sc, tparam, parameters, dedtypes, best, numBaseClassMatches); + deduceBaseClassParameters(*(*s.baseclasses)[0], sc, tparam, *parameters, dedtypes, best, numBaseClassMatches); // Test the interfaces inherited by the base class foreach (b; s.interfaces) { - deduceBaseClassParameters(*b, sc, tparam, parameters, dedtypes, best, numBaseClassMatches); + deduceBaseClassParameters(*b, sc, tparam, *parameters, dedtypes, best, numBaseClassMatches); } s = (*s.baseclasses)[0].sym; } @@ -2560,7 +2560,7 @@ private void deduceBaseClassParameters(ref BaseClass b, Scope* sc, Type tparam, memcpy(tmpdedtypes.tdata(), dedtypes.tdata(), dedtypes.length * (void*).sizeof); auto t = new TypeInstance(Loc.initial, parti); - MATCH m = deduceType(t, sc, tparam, parameters, tmpdedtypes); + MATCH m = deduceType(t, sc, tparam, parameters, *tmpdedtypes); if (m > MATCH.nomatch) { // If this is the first ever match, it becomes our best estimate