t: type = { swap: (virtual inout this, that) = { } // Non-`virtual` blocked on #508, idiomatic form on #507. } main: () = { static_assert(noexcept(t().swap(t()))); // Fails on Clang 12 (lambda in unevaluated context) and GCC 10 (static assertion failed) }