Skip assignment for null-value ArrayLike object in idl-based generated code

This commit is contained in:
Shagen Ogandzhanian
2018-12-04 12:44:43 +01:00
parent 7bf51f1533
commit 8294309e5b
4 changed files with 69 additions and 9 deletions
@@ -304,7 +304,21 @@ fun Appendable.renderBuilderFunction(dictionary: GenerateTraitOrClass, allSuperT
for (field in fields) {
indent(level = 1)
appendln("o[\"${field.name}\"] = ${field.name.replaceKeywords()}")
val escapedFieldName = field.name.replaceKeywords()
val nullGuardedAssignment = field.type is ArrayType
if (nullGuardedAssignment) {
appendln("if ($escapedFieldName != null) {")
indent(level = 2)
}
appendln("o[\"${field.name}\"] = $escapedFieldName")
if (nullGuardedAssignment) {
indent(level = 1)
appendln("}")
}
}
appendln()