in glean/rts/substitution.cpp [108:127]
bool Substitution::sanityCheck(bool incomplete) const {
if (base == Id::invalid()) {
if (!items.empty()) {
LOG(ERROR) << "substitution with base 0 and size " << items.size();
return false;
}
} else {
if (base < Id::lowest()) {
LOG(ERROR) << "substitution with base " << base.toThrift();
return false;
}
for (auto id : items) {
if (id < Id::lowest() && !(incomplete && !id)) {
LOG(ERROR) << "substitution with invalid id " << id.toThrift();
return false;
}
}
}
return true;
}