Skip to content

Commit 54c2aaa

Browse files
authored
fix: Fix default value for string-backed enums (#939)
1 parent dcd85fd commit 54c2aaa

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/SwiftSymbolProvider.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,16 @@ class SwiftSymbolProvider(
345345

346346
return when (targetShape) {
347347
is ListShape -> builder.defaultValue("[]")
348-
is EnumShape -> builder.defaultValue(".${swiftEnumCaseName(null, defaultValueLiteral)}")
348+
is EnumShape -> {
349+
// Get the corresponding enum member name (enum case name) for the string value from default trait
350+
val enumMemberName =
351+
targetShape.enumValues.entries
352+
.firstOrNull {
353+
it.value == defaultValueLiteral
354+
}!!
355+
.key
356+
builder.defaultValue(".${swiftEnumCaseName(enumMemberName, defaultValueLiteral)}")
357+
}
349358
is IntEnumShape -> {
350359
// Get the corresponding enum member name (enum case name) for the int value from default trait
351360
val enumMemberName =

0 commit comments

Comments
 (0)