Increase encapsulation of the StructType class, eliminating the getElementTypes() member

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11227 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-02-09 04:36:50 +00:00
parent e3235afe09
commit 037b8b70d0

View File

@ -123,8 +123,7 @@ public:
class FunctionType : public DerivedType {
friend class TypeMap<FunctionValType, FunctionType>;
PATypeHandle ResultType;
typedef std::vector<PATypeHandle> ParamTypes;
ParamTypes ParamTys;
std::vector<PATypeHandle> ParamTys;
bool isVarArgs;
FunctionType(const FunctionType &); // Do not implement
@ -153,7 +152,7 @@ public:
inline bool isVarArg() const { return isVarArgs; }
inline const Type *getReturnType() const { return ResultType; }
typedef ParamTypes::const_iterator param_iterator;
typedef std::vector<PATypeHandle>::const_iterator param_iterator;
param_iterator param_begin() const { return ParamTys.begin(); }
param_iterator param_end() const { return ParamTys.end(); }
@ -212,12 +211,9 @@ public:
};
struct StructType : public CompositeType {
class StructType : public CompositeType {
friend class TypeMap<StructValType, StructType>;
typedef std::vector<PATypeHandle> ElementTypes;
private:
ElementTypes ETypes; // Element types of struct
std::vector<PATypeHandle> ETypes; // Element types of struct
StructType(const StructType &); // Do not implement
const StructType &operator=(const StructType &); // Do not implement
@ -240,7 +236,17 @@ public:
/// StructType.
static StructType *get(const std::vector<const Type*> &Params);
inline const ElementTypes &getElementTypes() const { return ETypes; }
// Iterator access to the elements
typedef std::vector<PATypeHandle>::const_iterator element_iterator;
element_iterator element_begin() const { return ETypes.begin(); }
element_iterator element_end() const { return ETypes.end(); }
// Random access to the elements
unsigned getNumElements() const { return ETypes.size(); }
const Type *getElementType(unsigned N) const {
assert(N < ETypes.size() && "Element number out of range!");
return ETypes[N];
}
virtual const Type *getContainedType(unsigned i) const {
return ETypes[i].get();