diff --git a/src/expression.d b/src/expression.d index 71d81980f4c6..f3546c470f0b 100644 --- a/src/expression.d +++ b/src/expression.d @@ -8961,7 +8961,7 @@ extern (C++) final class DotVarExp : UnaExp * tuple(e1.a, e1.b, e1.c) */ Expression e0; - Expression ev = extractSideEffect(sc, "__tup", e0, e1); + Expression ev = sc.func ? extractSideEffect(sc, "__tup", e0, e1) : e1; auto exps = new Expressions(); exps.reserve(tup.objects.dim); diff --git a/test/compilable/test17143.d b/test/compilable/test17143.d new file mode 100644 index 000000000000..403c9aa456c8 --- /dev/null +++ b/test/compilable/test17143.d @@ -0,0 +1,4 @@ +import std.typecons : tuple; +enum foo = tuple(1, 2).expand; +pragma(msg, typeof(foo).stringof); +pragma(msg, foo.stringof);