Sorry, I'm not quite sure I'm following: you want to make sure that if `errorsAreFatal` is set that `hadWarningOutput` is false in the case where we're going to exit cleanly? So, in other words, making sure that there were no warnings if there were no fatal errors?

I was intending for it to be the case that if `errorsAreFatal` is set, but not `warningsAreFatal` that only errors cause failure exit, and if `warningsAreFatal` is set, that _either_ warnings or errors would cause a failure exit (basically that fatal warnings implies fatal errors too). Does that sound right to you?