@@ -77,7 +77,7 @@ import dmd.rootobject;
7777import dmd.templatesem : matchWithInstance, formatParamsWithTiargs, leastAsSpecialized,
7878 deduceType, getExpression;
7979import dmd.tokens;
80- import dmd.typesem : typeSemantic, merge2, resolve, toDsymbol, isBaseOf, unqualify, resolveNamedArgs;
80+ import dmd.typesem : typeSemantic, merge2, resolve, toDsymbol, isBaseOf, resolveNamedArgs;
8181import dmd.visitor;
8282
8383import dmd.templateparamsem;
@@ -909,67 +909,6 @@ extern (C++) final class TypeDeduced : Type
909909
910910/* ======================== Type ============================================ */
911911
912- private auto X (T, U)(T m, U n)
913- {
914- return (m << 4 ) | n;
915- }
916-
917- ubyte deduceWildHelper (Type t, Type* at, Type tparam)
918- {
919- if ((tparam.mod & MODFlags.wild) == 0 )
920- return 0 ;
921-
922- * at = null ;
923-
924- switch (X(tparam.mod, t.mod))
925- {
926- case X (MODFlags.wild, 0 ):
927- case X (MODFlags.wild, MODFlags.const_):
928- case X (MODFlags.wild, MODFlags.shared_):
929- case X (MODFlags.wild, MODFlags.shared_ | MODFlags.const_):
930- case X (MODFlags.wild, MODFlags.immutable_):
931- case X (MODFlags.wildconst, 0 ):
932- case X (MODFlags.wildconst, MODFlags.const_):
933- case X (MODFlags.wildconst, MODFlags.shared_):
934- case X (MODFlags.wildconst, MODFlags.shared_ | MODFlags.const_):
935- case X (MODFlags.wildconst, MODFlags.immutable_):
936- case X (MODFlags.shared_ | MODFlags.wild, MODFlags.shared_):
937- case X (MODFlags.shared_ | MODFlags.wild, MODFlags.shared_ | MODFlags.const_):
938- case X (MODFlags.shared_ | MODFlags.wild, MODFlags.immutable_):
939- case X (MODFlags.shared_ | MODFlags.wildconst, MODFlags.shared_):
940- case X (MODFlags.shared_ | MODFlags.wildconst, MODFlags.shared_ | MODFlags.const_):
941- case X (MODFlags.shared_ | MODFlags.wildconst, MODFlags.immutable_):
942- {
943- ubyte wm = (t.mod & ~ MODFlags.shared_);
944- if (wm == 0 )
945- wm = MODFlags.mutable;
946- ubyte m = (t.mod & (MODFlags.const_ | MODFlags.immutable_)) | (tparam.mod & t.mod & MODFlags.shared_);
947- * at = t.unqualify(m);
948- return wm;
949- }
950- case X (MODFlags.wild, MODFlags.wild):
951- case X (MODFlags.wild, MODFlags.wildconst):
952- case X (MODFlags.wild, MODFlags.shared_ | MODFlags.wild):
953- case X (MODFlags.wild, MODFlags.shared_ | MODFlags.wildconst):
954- case X (MODFlags.wildconst, MODFlags.wild):
955- case X (MODFlags.wildconst, MODFlags.wildconst):
956- case X (MODFlags.wildconst, MODFlags.shared_ | MODFlags.wild):
957- case X (MODFlags.wildconst, MODFlags.shared_ | MODFlags.wildconst):
958- case X (MODFlags.shared_ | MODFlags.wild, MODFlags.shared_ | MODFlags.wild):
959- case X (MODFlags.shared_ | MODFlags.wild, MODFlags.shared_ | MODFlags.wildconst):
960- case X (MODFlags.shared_ | MODFlags.wildconst, MODFlags.shared_ | MODFlags.wild):
961- case X (MODFlags.shared_ | MODFlags.wildconst, MODFlags.shared_ | MODFlags.wildconst):
962- {
963- * at = t.unqualify(tparam.mod & t.mod);
964- return MODFlags.wild;
965- }
966- default :
967- return 0 ;
968- }
969- }
970-
971-
972-
973912/* **********************************************************
974913 * Check whether the type t representation relies on one or more the template parameters.
975914 * Params:
0 commit comments