virtual const Type *getContainedType(unsigned i) const {
- return i == 0 ? ResultType :
- (i <= ParamTys.size() ? ParamTys[i-1].get() : 0);
+ return i == 0 ? ResultType.get() : ParamTys[i-1].get();
}
virtual unsigned getNumContainedTypes() const { return ParamTys.size()+1; }
inline const ElementTypes &getElementTypes() const { return ETypes; }
virtual const Type *getContainedType(unsigned i) const {
- return i < ETypes.size() ? ETypes[i].get() : 0;
+ return ETypes[i].get();
}
virtual unsigned getNumContainedTypes() const { return ETypes.size(); }
inline const Type *getElementType() const { return ElementType; }
virtual const Type *getContainedType(unsigned i) const {
- return i == 0 ? ElementType.get() : 0;
+ return ElementType.get();
}
virtual unsigned getNumContainedTypes() const { return 1; }
/// getContainedType - This method is used to implement the type iterator
/// (defined a the end of the file). For derived types, this returns the
- /// types 'contained' in the derived type, returning 0 when 'i' becomes
- /// invalid. This allows the user to iterate over the types in a struct, for
- /// example, really easily.
+ /// types 'contained' in the derived type.
///
- virtual const Type *getContainedType(unsigned i) const { return 0; }
+ virtual const Type *getContainedType(unsigned i) const {
+ assert(0 && "No contained types!");
+ }
/// getNumContainedTypes - Return the number of types in the derived type
virtual unsigned getNumContainedTypes() const { return 0; }