// FIXME: move inline
bool Type::isPointerType() const { return isa<PointerType>(CanonicalType); }
+bool Type::isReferenceType() const { return isa<ReferenceType>(CanonicalType); }
const PointerType *Type::getAsPointerType() const {
// If this is directly a pointer type, return it.
return 0;
}
-const ReferenceType *Type::isReferenceType() const {
+const ReferenceType *Type::getAsReferenceType() const {
// If this is directly a reference type, return it.
if (const ReferenceType *RTy = dyn_cast<ReferenceType>(this))
return RTy;
QualType t = e->getType();
assert(!t.isNull() && "DefaultFunctionArrayConversion - missing type");
- if (const ReferenceType *ref = t->isReferenceType()) {
+ if (const ReferenceType *ref = t->getAsReferenceType()) {
promoteExprToType(e, ref->getReferenceeType()); // C++ [expr]
t = e->getType();
}
QualType t = expr->getType();
assert(!t.isNull() && "UsualUnaryConversions - missing type");
- if (const ReferenceType *ref = t->isReferenceType()) {
+ if (const ReferenceType *ref = t->getAsReferenceType()) {
promoteExprToType(expr, ref->getReferenceeType()); // C++ [expr]
t = expr->getType();
}
T = Context.getPointerType(T).getQualifiedType(DeclType.Ptr.TypeQuals);
break;
case DeclaratorChunk::Reference:
- if (const ReferenceType *RT = T->isReferenceType()) {
+ if (const ReferenceType *RT = T->getAsReferenceType()) {
// C++ 8.3.2p4: There shall be no references to references ...
Diag(D.getIdentifierLoc(),
diag::err_illegal_decl_reference_to_reference,
Diag(D.getIdentifierLoc(), diag::err_illegal_decl_array_of_functions,
D.getIdentifier()->getName());
T = Context.getPointerType(T);
- } else if (const ReferenceType *RT = T->isReferenceType()) {
+ } else if (const ReferenceType *RT = T->getAsReferenceType()) {
// C++ 8.3.2p4: There shall be no ... arrays of references ...
Diag(D.getIdentifierLoc(), diag::err_illegal_decl_array_of_references,
D.getIdentifier()->getName());
/// Derived types (C99 6.2.5p20).
bool isDerivedType() const;
const FunctionType *isFunctionType() const;
+
bool isPointerType() const;
+ bool isReferenceType() const;
const PointerType *getAsPointerType() const;
- const ReferenceType *isReferenceType() const;
+ const ReferenceType *getAsReferenceType() const;
const ArrayType *isArrayType() const;
const RecordType *isRecordType() const;
const TagType *isStructureType() const;