Can you elaborate what you are afraid of?
In general I think it's bad if an assert changes too much how the code
would run without asserts. E.g., maybe this O(N^2) assert alters how
threads are scheduled and changes how / whether an issue appears in
Similarly, if a user is having trouble, I'll recommend turning on
asserts to see if one trips, but if this causes a change in how the
code runs then this can change whether the issue reproduces.
I also just don't like O(N^2) code, even when it's under an assert
I think asserts should minimize their impact to the real code when
possible, and it certainly seems possible in this case.
Separately, we really should run our tests w/o asserts, too, since
this is how our users typically run (I know some tests fail if
assertions are off ... we'd have to fix them). What if we accidentally
commit "real" code behind an assert? Our tests wouldn't catch it ...