code: def check_types(srctype, sinktype, linkMerge, valueFrom):
      # type: (Any, Any, Optional[Text], Optional[Text]) -> Text
      
  
      if valueFrom is not None:
          return "pass"
      if linkMerge is None:
          if can_assign_src_to_sink(srctype, sinktype, strict=True):
              return "pass"
          if can_assign_src_to_sink(srctype, sinktype, strict=False):
              return "warning"
          return "exception"
      if linkMerge == "merge_nested":
          return check_types({"items": _get_type(srctype), "type": "array"},
                             _get_type(sinktype), None, None)
      if linkMerge == "merge_flattened":
          return check_types(merge_flatten_type(_get_type(srctype)), _get_type(sinktype), None, None)
      raise WorkflowException(u"Unrecognized linkMerge enum '{}'".format(linkMerge))
docs: Check if the source and sink types are "pass", "warning", or "exception".