File tree 2 files changed +5
-15
lines changed
2 files changed +5
-15
lines changed Original file line number Diff line number Diff line change @@ -152,15 +152,17 @@ class DartStructGenerator extends GeneratorForAnnotation<Mapper> {
152
152
153
153
final setters = (outputSource.type.element as ClassElement ).fields.where ((field) => field.setter != null );
154
154
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));
156
158
157
159
for (final setter in setters) {
158
160
159
161
final mapperExpression = _getMapperExpression (setter, inputSource);
160
162
161
163
if (mapperExpression != null ) {
162
164
163
- final assignmentExpression = refer (outputSource.name).nullSafeProperty (setter.displayName).assign (mapperExpression);
165
+ final assignmentExpression = refer (outputSource.name).property (setter.displayName).assign (mapperExpression);
164
166
blockBuilder.addExpression (assignmentExpression);
165
167
166
168
} else {
@@ -203,16 +205,4 @@ class DartStructGenerator extends GeneratorForAnnotation<Mapper> {
203
205
204
206
}
205
207
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
-
218
208
}
Original file line number Diff line number Diff line change @@ -12,7 +12,7 @@ class FieldMapperAdapter implements MapperAdapter {
12
12
FieldMapperAdapter (this ._mapper, this ._fieldElement);
13
13
14
14
@override
15
- Expression get expression => _mapper.expression.nullSafeProperty (_fieldElement.displayName);
15
+ Expression get expression => _mapper.expression.property (_fieldElement.displayName);
16
16
17
17
@override
18
18
DartType get returnType => _fieldElement.type;
You can’t perform that action at this time.
0 commit comments