diktat icon indicating copy to clipboard operation
diktat copied to clipboard

Optional rule: require should have a message unless it's inside code from tests

Open petertrr opened this issue 4 years ago • 1 comments

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 avatar Apr 22 '21 09:04 petertrr

@petertrr could you please add more verbose description to this request, please add some examples :)

orchestr7 avatar Apr 27 '22 14:04 orchestr7