File tree Expand file tree Collapse file tree 2 files changed +5
-15
lines changed Expand file tree Collapse file tree 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> {
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}
Original file line number Diff line number Diff 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;
You can’t perform that action at this time.
0 commit comments