| 207 | } |
| 208 | |
| 209 | xla::StatusOr<InferredShape> MergeInferredShapes(const InferredShape& a, |
| 210 | const InferredShape& b) { |
| 211 | InferredShape result; |
| 212 | TF_RETURN_IF_ERROR(a.shape.MergeWith(b.shape, &result.shape)); |
| 213 | |
| 214 | if (a.handle_type == DT_INVALID) { |
| 215 | result.handle_type = b.handle_type; |
| 216 | } else if (b.handle_type == DT_INVALID) { |
| 217 | result.handle_type = a.handle_type; |
| 218 | } else if (a.handle_type == b.handle_type) { |
| 219 | result.handle_type = a.handle_type; |
| 220 | } else { |
| 221 | return errors::InvalidArgument( |
| 222 | "Mismatched resource types: ", DataTypeString(a.handle_type), " vs. ", |
| 223 | DataTypeString(b.handle_type)); |
| 224 | } |
| 225 | TF_RETURN_IF_ERROR( |
| 226 | a.handle_shape.MergeWith(b.handle_shape, &result.handle_shape)); |
| 227 | return result; |
| 228 | } |
| 229 | |
| 230 | } // namespace tensorflow |
nothing calls this directly
no test coverage detected