Skip to content

Commit

Permalink
feat: add default value None for optional members (smithy-lang#305)
Browse files Browse the repository at this point in the history
* feat: add default value None for optional members
  • Loading branch information
ajewellamz authored and ShubhamChaturvedi7 committed Feb 24, 2024
1 parent e027e4d commit fdcf416
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -375,8 +375,12 @@ public TokenTree generateWrappedDataTypeConstructorFromUnionMember(final MemberS
}

private TokenTree generateStructureTypeParameter(final MemberShape memberShape) {
return Token.of("nameonly %s: %s".formatted(
memberShape.getMemberName(), nameResolver.baseTypeForShape(memberShape.getId())));
String dflt = "";
if (ModelUtils.memberShapeIsOptional(model, memberShape)) {
dflt = " := Option.None";
}
return Token.of("nameonly %s: %s%s".formatted(
memberShape.getMemberName(), nameResolver.baseTypeForShape(memberShape.getId()), dflt));
}

public TokenTree generateServiceTraitDefinition(ServiceShape serviceShape) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,9 +189,9 @@ public void testGenerateStructureTypeDefinition() {

final List<ParseToken> expectedTokens = Tokenizer.tokenize("""
datatype Foobar = | Foobar(
nameonly someInt: Option<int32>,
nameonly someString: Option<string>,
nameonly someBool: bool
nameonly someInt: Option<int32> := Option.None,
nameonly someString: Option<string> := Option.None,
nameonly someBool: bool
)
""");
assertEquals(expectedTokens, actualTokens);
Expand Down

0 comments on commit fdcf416

Please sign in to comment.