//===--- Type.cpp - Type representation and manipulation ------------------===////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This file implements type-related functionality.////===----------------------------------------------------------------------===//#include"clang/AST/ASTContext.h"#include"clang/AST/Type.h"#include"clang/AST/DeclCXX.h"#include"clang/AST/DeclObjC.h"#include"clang/AST/DeclTemplate.h"#include"clang/AST/Expr.h"#include"llvm/ADT/StringExtras.h"usingnamespaceclang;boolQualType::isConstant(ASTContext&Ctx)const{if(isConstQualified())returntrue;if(getTypePtr()->isArrayType())returnCtx.getAsArrayType(*this)->getElementType().isConstant(Ctx);returnfalse;}voidType::Destroy(ASTContext&C){this->~Type();C.Deallocate(this);}voidVariableArrayType::Destroy(ASTContext&C){SizeExpr->Destroy(C);this->~VariableArrayType();C.Deallocate(this);}voidDependentSizedArrayType::Destroy(ASTContext&C){SizeExpr->Destroy(C);this->~DependentSizedArrayType();