Hey, > Assertions should be used for statements that literally should always be true.
Indeed. This is the case for the assertion that is failing. Apparently there is a bug somewhere, and a lack of appropriate tests. But never mind that bug, we got a much more exciting flame war to keep going here :) IMO throw an exception if you're > going to do this checking; then you at least get the stack trace (and > function arguments!) for the last chance error handler; not to mention > you're giving upstream code the chance to catch it in case it can be > handled. > Agreed. Exceptions are generally better. Assertions are the lazy way out, just like type hints. Type hint violations do pretty much the same thing as assertion violations. Arguing against asserts while not minding type hints is odd, as the later is arguably more of an issue, as these ones causes issues on invalid input. Putting in a pile of ifs that do instanceof checks and whatnot does cause clutter. So as with pretty much everything in the field of engineering, think about the tradeoffs of the various approaches whenever you need to pick one. Deciding on one and then religiously following it everywhere is going to end poorly, no matter which approach you pick. ps. Exception handling is generally done quite badly in MW core and extensions. See http://sourceforge.net/mailarchive/message.php?msg_id=31231379 Cheers -- Jeroen De Dauw http://www.bn2vs.com Don't panic. Don't be evil. ~=[,,_,,]:3 -- _______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l