public:
/// getParent - Returns the containing DeclContext if this is a ScopedDecl,
/// else returns NULL.
- DeclContext *getParent();
- const DeclContext *getParent() const {
- return const_cast<DeclContext*>(this)->getParent();
+ const DeclContext *getParent() const;
+ DeclContext *getParent() {
+ return const_cast<DeclContext*>(
+ const_cast<const DeclContext*>(this)->getParent());
}
bool isFunctionOrMethod() const {
// DeclContext Implementation
//===----------------------------------------------------------------------===//
-DeclContext *DeclContext::getParent() {
- if (ScopedDecl *SD = dyn_cast<ScopedDecl>(this))
+const DeclContext *DeclContext::getParent() const {
+ if (const ScopedDecl *SD = dyn_cast<ScopedDecl>(this))
return SD->getDeclContext();
- else if (BlockDecl *BD = dyn_cast<BlockDecl>(this))
+ else if (const BlockDecl *BD = dyn_cast<BlockDecl>(this))
return BD->getParentContext();
else
return NULL;