void FieldModel::check_frame_consistency()

in source/FieldModel.cpp [72:99]


void FieldModel::check_frame_consistency(
    const Frame& frame,
    std::string_view kind) const {
  if (frame.is_bottom()) {
    FieldModelConsistencyError::raise(fmt::format(
        "Model for field `{}` contains a bottom {}.", show(field_), kind));
  }
  if (frame.is_artificial_source()) {
    FieldModelConsistencyError::raise(fmt::format(
        "Model for field `{}` contains an artificial {}.", show(field_), kind));
  }
  if (field_ && frame.field_origins().empty()) {
    FieldModelConsistencyError::raise(fmt::format(
        "Model for field `{}` contains a {} without field origins.",
        show(field_),
        kind));
  }
  if (!frame.callee_port().root().is_leaf() ||
      frame.call_position() != nullptr || frame.distance() != 0 ||
      !frame.origins().is_bottom() || frame.via_type_of_ports().size() != 0 ||
      !frame.local_positions().empty() || frame.canonical_names().size() != 0) {
    FieldModelConsistencyError::raise(fmt::format(
        "Frame {} in {}s for field `{}` contains an unexpected non-empty or non-bottom value for a field.",
        show(frame),
        show(kind),
        show(field_)));
  }
}