Skip to content

Commit e45589e

Browse files
committed
improved generated code readability
1 parent 4082824 commit e45589e

File tree

2 files changed

+5
-15
lines changed

2 files changed

+5
-15
lines changed

generator/lib/src/dartstruct_generator.dart

+4-14
Original file line numberDiff line numberDiff line change
@@ -152,15 +152,17 @@ class DartStructGenerator extends GeneratorForAnnotation<Mapper> {
152152

153153
final setters = (outputSource.type.element as ClassElement).fields.where((field) => field.setter != null);
154154

155-
final blockBuilder = BlockBuilder()..addExpression(_instantiateOutputOrNull(inputSource, outputSource));
155+
final blockBuilder = BlockBuilder()
156+
..addExpression(CodeExpression(Code('if (${inputSource.name} == null) return null')))
157+
..addExpression(refer(outputSource.type.element.displayName).newInstance([]).assignFinal(outputSource.name));
156158

157159
for (final setter in setters) {
158160

159161
final mapperExpression = _getMapperExpression(setter, inputSource);
160162

161163
if (mapperExpression != null) {
162164

163-
final assignmentExpression = refer(outputSource.name).nullSafeProperty(setter.displayName).assign(mapperExpression);
165+
final assignmentExpression = refer(outputSource.name).property(setter.displayName).assign(mapperExpression);
164166
blockBuilder.addExpression(assignmentExpression);
165167

166168
} else {
@@ -203,16 +205,4 @@ class DartStructGenerator extends GeneratorForAnnotation<Mapper> {
203205

204206
}
205207

206-
/// generate expression `final {output} = {input} == null ? null : new {output}()`
207-
Expression _instantiateOutputOrNull(InputSource input, OutputSource output) {
208-
209-
final nullValue = refer('null');
210-
final inputValue = refer(input.name);
211-
final newInstanceExpression = refer(output.type.element.displayName).newInstance([]);
212-
213-
return inputValue
214-
.equalTo(nullValue)
215-
.conditional(nullValue, newInstanceExpression).assignFinal(output.name);
216-
}
217-
218208
}

generator/lib/src/mappers/field_mapper_adapter.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class FieldMapperAdapter implements MapperAdapter {
1212
FieldMapperAdapter(this._mapper, this._fieldElement);
1313

1414
@override
15-
Expression get expression => _mapper.expression.nullSafeProperty(_fieldElement.displayName);
15+
Expression get expression => _mapper.expression.property(_fieldElement.displayName);
1616

1717
@override
1818
DartType get returnType => _fieldElement.type;

0 commit comments

Comments
 (0)