in codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/ShapeValueGenerator.java [120:164]
protected void writeMemberValueInline(GoWriter writer, MemberShape member, Node params) {
Shape targetShape = model.expectShape(member.getTarget());
// Null params need to be represented as zero values for member,
if (params.isNullNode()) {
if (pointableIndex.isNillable(member)) {
writer.writeInline("nil");
} else if (targetShape.getType() == ShapeType.STRING && targetShape.hasTrait(EnumTrait.class)) {
Symbol enumSymbol = symbolProvider.toSymbol(targetShape);
writer.writeInline("$T($S)", enumSymbol, "");
} else {
Symbol shapeSymbol = symbolProvider.toSymbol(member);
writer.writeInline("func() (v $P) { return v }()", shapeSymbol);
}
return;
}
switch (targetShape.getType()) {
case STRUCTURE:
structDeclShapeValue(writer, member, params);
break;
case SET:
case LIST:
listDeclShapeValue(writer, member, params);
break;
case MAP:
mapDeclShapeValue(writer, member, params);
break;
case UNION:
unionDeclShapeValue(writer, member, params.expectObjectNode());
break;
case DOCUMENT:
documentDeclShapeValue(writer, member, params);
break;
default:
writeScalarPointerInline(writer, member, params);
}
}