invokeNestedMappingFunction function

Expression invokeNestedMappingFunction(
  1. MethodElement method,
  2. bool sourceNullable,
  3. Expression refWithQuestion,
  4. Expression ref,
)

Implementation

Expression invokeNestedMappingFunction(
  MethodElement method,
  bool sourceNullable,
  Expression refWithQuestion,
  Expression ref,
) {
  Expression sourceFieldAssignment;
  if (method.parameters.first.isOptional) {
    // The parameter can be null.
    sourceFieldAssignment = refer(method.name).call([refWithQuestion]);
  } else {
    sourceFieldAssignment = refer(method.name).call([ref]);
    sourceFieldAssignment = checkNullExpression(
        sourceNullable, refWithQuestion, sourceFieldAssignment);
  }
  return sourceFieldAssignment;
}