PrimitiveID ID; // The current base type of this type...
unsigned UID; // The unique ID number for this class
bool Abstract; // True if type contains an OpaqueType
- bool Recursive; // True if the type is recursive
protected:
/// ctor is protected, so only subclasses can create Type objects...
///
inline void setAbstract(bool Val) { Abstract = Val; }
- /// Types can become recursive later, if they are refined.
- ///
- inline void setRecursive(bool Val) { Recursive = Val; }
-
public:
virtual void print(std::ostream &O) const;
///
inline bool isAbstract() const { return Abstract; }
- /// isRecursive - True if the type graph contains a cycle.
- ///
- inline bool isRecursive() const { return Recursive; }
-
/// isLosslesslyConvertibleTo - Return true if this type can be converted to
/// 'Ty' without any reinterpretation of bits. For example, uint to int.
///