class PackedType;
class TypeMapBase;
-class Type {
+class Type : public AbstractTypeUser {
public:
///===-------------------------------------------------------------------===//
/// Definitions of all of the base types for the Type system. Based on this
/// their size is relatively uncommon, move this operation out of line.
bool isSizedDerivedType() const;
+ virtual void refineAbstractType(const DerivedType *OldTy, const Type *NewTy);
+ virtual void typeBecameConcrete(const DerivedType *AbsTy);
+
protected:
// PromoteAbstractToConcrete - This is an internal method used to calculate
// change "Abstract" from true to false when types are refined.