https://issues.dlang.org/show_bug.cgi?id=23901
--- Comment #3 from Vladimir Panteleev <[email protected]> --- It's in the issue title. On 2.103.1, the full output is: core.exception.AssertError@/home/vladimir/data/software/dmd/dmd.2.103.1.linux/dmd2/linux/bin64/../../src/phobos/std/algorithm/mutation.d(1427): Cannot move object of type Tuple with internal pointer unless `opPostMove` is defined. ---------------- ??:? _d_assert_msg [0x55972b30555c] ??:? pure nothrow @nogc @safe void std.algorithm.mutation.moveEmplaceImpl!(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple).moveEmplaceImpl(scope ref test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple, return scope ref test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple) [0x55972b2fddb0] ??:? pure nothrow @nogc @trusted test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple std.algorithm.mutation.trustedMoveImpl!(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple).trustedMoveImpl(return scope ref test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple) [0x55972b2fdf7f] ??:? pure nothrow @nogc @safe test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple std.algorithm.mutation.moveImpl!(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple).moveImpl(return scope ref test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple) [0x55972b2fdd60] ??:? pure nothrow @nogc @safe test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple std.algorithm.mutation.move!(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple).move(return scope ref test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple) [0x55972b2fdd54] ??:? pure nothrow ref @nogc @safe test.functor10!(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple).functor10(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple).Functor test.functor10!(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple).functor10(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple).Functor.__ctor(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple) [0x55972b2fdd44] ??:? pure nothrow @nogc @safe test.functor10!(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple).functor10(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple).Functor test.functor10!(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple).functor10(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple) [0x55972b2fdd2d] ??:? pure nothrow @nogc @safe test.functor10!(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple).functor10(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple).Functor test.formattingFunctor1!(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple).formattingFunctor1(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple) [0x55972b2fdc17] ??:? nothrow @nogc @safe void test.fmtIf1!(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe, immutable(char)[]).fmtIf1(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe, immutable(char)[]).fun!(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe).fun(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe) [0x55972b2fdbe0] ??:? nothrow @nogc @safe void test.functor7!(test.fmtIf1!(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe, immutable(char)[]).fmtIf1(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe, immutable(char)[]).fun, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe).functor7(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe).Functor.opCall() [0x55972b2fdba2] ??:? nothrow @nogc @safe void test.select1!(test.functor4!(test.valueFunctor1!(bool).valueFunctor1(bool).__lambda2, bool).functor4(bool).Functor, test.functor7!(test.fmtIf1!(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe, immutable(char)[]).fmtIf1(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe, immutable(char)[]).fun, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe).functor7(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe).Functor, test.functor8!(test.fmtIf1!(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe, immutable(char)[]).fmtIf1(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @n... ??:? nothrow @nogc @safe void test.functor6!(test.select1!(test.functor4!(test.valueFunctor1!(bool).valueFunctor1(bool).__lambda2, bool).functor4(bool).Functor, test.functor7!(test.fmtIf1!(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe, immutable(char)[]).fmtIf1(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe, immutable(char)[]).fun, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe).functor7(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe).Functor, test.functor8!(test.fmtIf1!(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe, immutable(char)[]).fmtIf1(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delega... ??:? nothrow @nogc @safe void test.stringifiable1!(test.functor6!(test.select1!(test.functor4!(test.valueFunctor1!(bool).valueFunctor1(bool).__lambda2, bool).functor4(bool).Functor, test.functor7!(test.fmtIf1!(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe, immutable(char)[]).fmtIf1(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe, immutable(char)[]).fun, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe).functor7(test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe).Functor, test.functor8!(test.fmtIf1!(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).Tuple delegate() nothrow @nogc @safe, immutable(char)[]).fmtIf1(bool, test.tuple!(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).Functor).tuple(test.functor5!(bool).functor5(bool).Functor, test.functor3(int*).... ??:? _Dmain [0x55972b2fd7cc] --
