Refactor lazy list unpacking (#8746)

Co-authored-by: Wouter van Oortmerssen <aardappel@gmail.com>
This commit is contained in:
Jakob Kordež
2025-10-31 21:41:59 +01:00
committed by GitHub
parent dd77af75b7
commit 592dc50037
4 changed files with 38 additions and 93 deletions

View File

@@ -611,20 +611,11 @@ class DartGenerator : public BaseGenerator {
constructor_args +=
field_name + nullableValueAccessOperator + ".unpack()";
} else if (type.base_type == BASE_TYPE_VECTOR) {
constructor_args += field_name + nullableValueAccessOperator;
if (type.VectorType().base_type == BASE_TYPE_STRUCT) {
constructor_args += field_name + nullableValueAccessOperator +
".map((e) => e.unpack()).toList()";
} else {
constructor_args +=
GenReaderTypeName(field.value.type, struct_def.defined_namespace,
field, false, false);
constructor_args += ".vTableGet";
std::string offset = NumToString(field.value.offset);
constructor_args +=
isNullable
? "Nullable(_bc, _bcOffset, " + offset + ")"
: "(_bc, _bcOffset, " + offset + ", " + defaultValue + ")";
constructor_args += ".map((e) => e.unpack())";
}
constructor_args += ".toList()";
} else {
constructor_args += field_name;
}