Skip to content

Commit ba76c40

Browse files
committed
Improve the error messages for incompatible Unicode directives
1 parent 96f0609 commit ba76c40

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

core/common/src/format/migration/Unicode.kt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,22 +106,30 @@ public fun DateTimeFormatBuilder.byUnicodePattern(pattern: String) {
106106
is UnicodeFormat.Directive -> {
107107
when (format) {
108108
is UnicodeFormat.Directive.TimeBased -> {
109-
require(builder is DateTimeFormatBuilder.WithTime)
109+
require(builder is DateTimeFormatBuilder.WithTime) {
110+
"A time-based directive $format was used in a format builder that doesn't support time components"
111+
}
110112
format.addToFormat(builder)
111113
}
112114

113115
is UnicodeFormat.Directive.DateBased -> {
114-
require(builder is DateTimeFormatBuilder.WithDate)
116+
require(builder is DateTimeFormatBuilder.WithDate) {
117+
"A date-based directive $format was used in a format builder that doesn't support date components"
118+
}
115119
format.addToFormat(builder)
116120
}
117121

118122
is UnicodeFormat.Directive.ZoneBased -> {
119-
require(builder is DateTimeFormatBuilder.WithDateTimeComponents)
123+
require(builder is DateTimeFormatBuilder.WithDateTimeComponents) {
124+
"A time-zone-based directive $format was used in a format builder that doesn't support time-zone components"
125+
}
120126
format.addToFormat(builder)
121127
}
122128

123129
is UnicodeFormat.Directive.OffsetBased -> {
124-
require(builder is DateTimeFormatBuilder.WithUtcOffset)
130+
require(builder is DateTimeFormatBuilder.WithUtcOffset) {
131+
"A UTC-offset-based directive $format was used in a format builder that doesn't support UTC offset components"
132+
}
125133
format.addToFormat(builder)
126134
}
127135

0 commit comments

Comments
 (0)