We should be checking is_assignable<It&, ...>. is_assignable<It, ...> checks for an rvalue left-hand side, which is basically never assignable-to.
Found while looking into https://cplusplus.github.io/LWG/issue3435 .
I don't think this is worth testing, because it's just a matter of whether we call it.operator=(jt) (correct) or it.operator=(It(jt)) (current behavior). Also, the behavior apparently changes again in C++20. Also, there's implementation divergence because of our dumb _LIBCPP_ABI_NO_ITERATOR_BASES thing (so we make twice as many copies as we need to — btw this is going to be an extra mess as soon as we need to support move-only iterators in reverse_iterator)
https://godbolt.org/z/5TKvshM3f
But I'd like to get the typo-fix landed now, so that it doesn't fall through the cracks.