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