----------------------------------------------- struct S {} void main() { S s; assert(s.tupleof != s.tupleof); } ----------------------------------------------- checkaction.d(6): Error: template `core.internal.dassert._d_assert_fail` cannot deduce function from argument types `!()(string)`, candidates are: ./generated/linux/release/64/../../../../../druntime/import/core/internal/dassert.d(38): `_d_assert_fail(A)(scope const string op, auto ref scope const A a)` ./generated/linux/release/64/../../../../../druntime/import/core/internal/dassert.d(59): `_d_assert_fail(A...)` ./generated/linux/release/64/../../../../../druntime/import/core/internal/dassert.d(76): `_d_assert_fail(A, B)(scope const string comp, auto ref scope const A a, auto ref scope const B b)`
@MoonlightSentinel created dlang/druntime pull request #3411 "Fix 21764 - checkaction=context doesn't work for empty tuples" fixing this issue: - Fix 21764 - checkaction=context doesn't work for empty tuples The template constraint was intended to avoid collisions with the unary hook but also prevented instances for zero elements. `combine` was adapted to print empty arrays as `()`. https://github.com/dlang/druntime/pull/3411
dlang/druntime pull request #3411 "Fix 21764 - checkaction=context doesn't work for empty tuples" was merged into master: - d4c1d376e4cfeb0882316b06fa6d8c1db7de8981 by MoonlightSentinel: Fix 21764 - checkaction=context doesn't work for empty tuples The template constraint was intended to avoid collisions with the unary hook but also prevented instances for zero elements. `combine` was adapted to print empty arrays as `()`. https://github.com/dlang/druntime/pull/3411