diktat
diktat copied to clipboard
Optional rule: require should have a message unless it's inside code from tests
Preconditions from Kotlin stdlib (require, requireNotNull) accept an optional message parameter. If it's not set, failed precondition results in exceptions like Requirement failed at class:line:col. This is not useful and confusing. Unless require or requireNotNull is used in tests, it should be provided with exception message.
require(a.condition())
requireNotNull(b)
should be something like
require(a.condition()) { "Condition is not met for $a" }
requireNotNull(b) { "b is not set" }
Sure, we can't suggest exact text of these messages, so the possible inspection should only warn.
@petertrr could you please add more verbose description to this request, please add some examples :)