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;
}