Exemplo n.º 1
0
void TypeConstraint::init() {
  if (m_typeName == nullptr || isTypeVar() || isTypeConstant()) {
    m_type = Type::Mixed;
    return;
  }
  TRACE(5, "TypeConstraint: this %p type %s, nullable %d\n",
        this, m_typeName->data(), isNullable());
  auto const mptr = nameToAnnotType(m_typeName);
  if (mptr) {
    m_type = *mptr;
    assert(getAnnotDataType(m_type) != KindOfPersistentString);
    return;
  }
  TRACE(5, "TypeConstraint: this %p no such type %s, treating as object\n",
        this, m_typeName->data());
  m_type = Type::Object;
  m_namedEntity = NamedEntity::get(m_typeName);
  TRACE(5, "TypeConstraint: NamedEntity: %p\n", m_namedEntity.get());
}
Exemplo n.º 2
0
MaybeDataType nameToMaybeDataType(const std::string& typeName) {
  auto const* type = nameToAnnotType(typeName);
  return type ? MaybeDataType(getAnnotDataType(*type)) : folly::none;
}