2 #ifndef HOBBES_LANG_TYPEPREDS_OBJ_HPP_INCLUDED 3 #define HOBBES_LANG_TYPEPREDS_OBJ_HPP_INCLUDED 34 if (this->vtblLookup) {
35 return "vtbl(" +
str::from(this->offset) +
")";
43 std::string
show(
const PtrAdjustmentPath& p);
55 void add(
const class_type* ct);
57 typedef int class_type;
59 bool add(
const std::type_info& ti);
60 bool add(
const std::type_info* ti);
64 return add(
typeid(T));
67 bool isObjName(
const std::string& tn)
const;
71 PtrAdjustmentPath adjustment(
const std::string& derived,
const std::string& base)
const;
87 typedef std::map<std::string, const class_type*>
ClassDefs;
91 bool pathExists(
const std::string&
from,
const std::string&
to)
const;
std::shared_ptr< PolyType > PolyTypePtr
Definition: type.H:23
std::string targetTy
Definition: obj.H:31
PolyTypePtr generalize(const QualTypePtr &qt)
Definition: type.C:2016
__cxxabiv1::__vmi_class_type_info vmi_class_type
Definition: obj.H:52
bool satisfied(const UnqualifierPtr &, const TEnvPtr &, const ConstraintPtr &, std::vector< std::pair< std::string, std::shared_ptr< Expr > > > *)
bool satisfiable(const UnqualifierPtr &, const TEnvPtr &, const ConstraintPtr &, std::vector< std::pair< std::string, std::shared_ptr< Expr > > > *)
std::set< std::string > SymSet
Definition: tyunqualify.H:12
std::map< std::string, const class_type * > ClassDefs
Definition: obj.H:87
bool vtblLookup
Definition: obj.H:29
std::string from(const T &x)
Definition: str.H:101
static PtrAdjustment vtbl(int x, const std::string &tty)
Definition: obj.H:27
static PtrAdjustment by(int x, const std::string &tty)
Definition: obj.H:26
static PtrAdjustment id(const std::string &tty)
Definition: obj.H:25
MonoType::ptr MonoTypePtr
Definition: type.H:71
std::vector< PtrAdjustment > PtrAdjustmentPath
Definition: obj.H:41
int offset
Definition: obj.H:30
std::shared_ptr< Expr > ExprPtr
Definition: expr.H:58
T to(const std::string &x)
Definition: str.H:79
std::shared_ptr< TEnv > TEnvPtr
Definition: type.H:80
__cxxabiv1::__si_class_type_info si_class_type
Definition: obj.H:51
ClassDefs classDefs
Definition: obj.H:88
std::vector< Definition > Definitions
Definition: expr.H:62
PtrAdjustment(bool vtblLookup, int offset, const std::string &targetTy)
Definition: obj.H:23
std::shared_ptr< Constraint > ConstraintPtr
Definition: type.H:33
bool refine(const TEnvPtr &tenv, const ConstraintPtr &c, MonoTypeUnifier *s, Definitions *)
Definition: typeinf.C:485
std::shared_ptr< Objs > ObjsPtr
Definition: obj.H:93
std::string show() const
Definition: obj.H:33
T lookup(const std::map< K, T > &tenv, const K &n)
Definition: cc.C:518
bool add()
Definition: obj.H:63
__cxxabiv1::__class_type_info class_type
Definition: obj.H:50