move trivial type predicates inline.

llvm-svn: 40651
This commit is contained in:
Chris Lattner 2007-07-31 21:13:58 +00:00
parent 2464f4f048
commit 0ddc7ba2e5
2 changed files with 25 additions and 17 deletions

View File

@ -56,12 +56,6 @@ bool Type::isDerivedType() const {
}
}
// FIXME: move inline
bool Type::isFunctionType() const { return isa<FunctionType>(CanonicalType); }
bool Type::isPointerType() const { return isa<PointerType>(CanonicalType); }
bool Type::isReferenceType() const { return isa<ReferenceType>(CanonicalType); }
bool Type::isArrayType() const { return isa<ArrayType>(CanonicalType); }
bool Type::isRecordType() const { return isa<RecordType>(CanonicalType); }
bool Type::isStructureType() const {
if (const RecordType *RT = dyn_cast<RecordType>(this))
if (RT->getDecl()->getKind() == Decl::Struct)
@ -74,9 +68,6 @@ bool Type::isUnionType() const {
return true;
return false;
}
bool Type::isVectorType() const { return isa<VectorType>(CanonicalType); }
bool Type::isOCUVectorType() const { return isa<OCUVectorType>(CanonicalType); }
const FunctionType *Type::getAsFunctionType() const {
// If this is directly a function type, return it.

View File

@ -739,13 +739,7 @@ public:
};
/// ...
// TODO: When we support C++, we should have types for uses of template with
// default parameters. We should be able to distinguish source use of
// 'std::vector<int>' from 'std::vector<int, std::allocator<int> >'. Though they
// specify the same type, we want to print the default argument only if
// specified in the source code.
// Inline function definitions.
/// getCanonicalType - Return the canonical version of this type, with the
/// appropriate type qualifiers on it.
@ -754,7 +748,30 @@ inline QualType QualType::getCanonicalType() const {
getQualifiers() |
getTypePtr()->getCanonicalTypeInternal().getQualifiers());
}
inline bool Type::isFunctionType() const {
return isa<FunctionType>(CanonicalType);
}
inline bool Type::isPointerType() const {
return isa<PointerType>(CanonicalType);
}
inline bool Type::isReferenceType() const {
return isa<ReferenceType>(CanonicalType);
}
inline bool Type::isArrayType() const {
return isa<ArrayType>(CanonicalType);
}
inline bool Type::isRecordType() const {
return isa<RecordType>(CanonicalType);
}
inline bool Type::isVectorType() const {
return isa<VectorType>(CanonicalType);
}
inline bool Type::isOCUVectorType() const {
return isa<OCUVectorType>(CanonicalType);
}
} // end namespace clang
#endif