Skip to content

Commit cfbe052

Browse files
committed
Add diagnostic messages
1 parent 505aed9 commit cfbe052

File tree

3 files changed

+22
-12
lines changed

3 files changed

+22
-12
lines changed

core/common/src/internal/format/FieldFormatDirective.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ internal abstract class UnsignedIntFieldFormatDirective<in Target>(
4848
private val maxDigits: Int = field.maxDigits
4949

5050
init {
51-
require(minDigits >= 0)
51+
require(minDigits >= 0) {
52+
"The minimum number of digits ($minDigits) is negative"
53+
}
5254
require(maxDigits >= minDigits) {
5355
"The maximum number of digits ($maxDigits) is less than the minimum number of digits ($minDigits)"
5456
}
@@ -151,7 +153,9 @@ internal abstract class StringFieldFormatDirective<in Target>(
151153
) : FieldFormatDirective<Target> {
152154

153155
init {
154-
require(acceptedStrings.isNotEmpty())
156+
require(acceptedStrings.isNotEmpty()) {
157+
"The set of accepted strings is empty"
158+
}
155159
}
156160

157161
override fun formatter(): FormatterStructure<Target> =
@@ -173,8 +177,10 @@ internal abstract class SignedIntFieldFormatDirective<in Target>(
173177
) : FieldFormatDirective<Target> {
174178

175179
init {
176-
require(minDigits == null || minDigits >= 0)
177-
require(maxDigits == null || minDigits == null || maxDigits >= minDigits)
180+
require(minDigits == null || minDigits >= 0) { "The minimum number of digits ($minDigits) is negative" }
181+
require(maxDigits == null || minDigits == null || maxDigits >= minDigits) {
182+
"The maximum number of digits ($maxDigits) is less than the minimum number of digits ($minDigits)"
183+
}
178184
}
179185

180186
override fun formatter(): FormatterStructure<Target> {

core/common/src/internal/format/formatter/FormatterOperation.kt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ internal class UnsignedIntFormatterStructure<in T>(
2323
): FormatterStructure<T> {
2424

2525
init {
26-
require(zeroPadding >= 0)
27-
require(zeroPadding <= 9)
26+
require(zeroPadding >= 0) { "The minimum number of digits ($zeroPadding) is negative" }
27+
require(zeroPadding <= 9) { "The minimum number of digits ($zeroPadding) exceeds the length of an Int" }
2828
}
2929

3030
override fun format(obj: T, builder: Appendable, minusNotRequired: Boolean) {
@@ -42,8 +42,8 @@ internal class SignedIntFormatterStructure<in T>(
4242
): FormatterStructure<T> {
4343

4444
init {
45-
require(zeroPadding >= 0)
46-
require(zeroPadding <= 9)
45+
require(zeroPadding >= 0) { "The minimum number of digits ($zeroPadding) is negative" }
46+
require(zeroPadding <= 9) { "The minimum number of digits ($zeroPadding) exceeds the length of an Int" }
4747
}
4848

4949
override fun format(obj: T, builder: Appendable, minusNotRequired: Boolean) {
@@ -74,8 +74,12 @@ internal class DecimalFractionFormatterStructure<in T>(
7474
): FormatterStructure<T> {
7575

7676
init {
77-
require(minDigits in 1..9)
78-
require(maxDigits in minDigits..9)
77+
require(minDigits in 1..9) {
78+
"The minimum number of digits ($minDigits) is not in range 1..9"
79+
}
80+
require(maxDigits in minDigits..9) {
81+
"The maximum number of digits ($maxDigits) is not in range $minDigits..9"
82+
}
7983
}
8084

8185
override fun format(obj: T, builder: Appendable, minusNotRequired: Boolean) {

core/common/src/internal/format/parser/ParserOperation.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ internal interface ParserOperation<in Output> {
1515
internal class PlainStringParserOperation<Output>(val string: String) : ParserOperation<Output> {
1616
init {
1717
require(string.isNotEmpty()) { "Empty string is not allowed" }
18-
require(!string[0].isDigit())
19-
require(!string[string.length - 1].isDigit())
18+
require(!string[0].isDigit()) { "String '$string' starts with a digit" }
19+
require(!string[string.length - 1].isDigit()) { "String '$string' ends with a digit" }
2020
}
2121

2222
override fun consume(storage: Output, input: CharSequence, startIndex: Int): ParseResult {

0 commit comments

Comments
 (0)