From: Dmitri Gribenko Date: Sat, 3 Nov 2012 14:24:57 +0000 (+0000) Subject: Remove a const_cast by propagating constness to the member function. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1e905da74dbfd353d77dfc548fc9d6ff420d515a;p=clang Remove a const_cast by propagating constness to the member function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167357 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/ASTContext.h b/include/clang/AST/ASTContext.h index 1ba2400e65..d559feed17 100644 --- a/include/clang/AST/ASTContext.h +++ b/include/clang/AST/ASTContext.h @@ -636,8 +636,9 @@ public: /// the same selector and is of the same kind (class or instance). /// A method in an implementation is not considered as overriding the same /// method in the interface or its categories. - void getOverriddenMethods(const NamedDecl *Method, - SmallVectorImpl &Overridden); + void getOverriddenMethods( + const NamedDecl *Method, + SmallVectorImpl &Overridden) const; /// \brief Notify the AST context that a new import declaration has been /// parsed or implicitly created within this translation unit. diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 71764dbd97..2f7288109c 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -411,13 +411,12 @@ comments::FullComment *ASTContext::getCommentForDecl( const RawComment *RC = getRawCommentForAnyRedecl(D, &OriginalDecl); if (!RC) { if (isa(D) || isa(D)) { - SmallVector overridden; + SmallVector Overridden; if (const ObjCMethodDecl *OMD = dyn_cast(D)) - addRedeclaredMethods(OMD, overridden); - const_cast(this)->getOverriddenMethods(dyn_cast(D), - overridden); - for (unsigned i = 0, e = overridden.size(); i < e; i++) { - if (comments::FullComment *FC = getCommentForDecl(overridden[i], PP)) { + addRedeclaredMethods(OMD, Overridden); + getOverriddenMethods(dyn_cast(D), Overridden); + for (unsigned i = 0, e = Overridden.size(); i < e; i++) { + if (comments::FullComment *FC = getCommentForDecl(Overridden[i], PP)) { comments::FullComment *CFC = cloneFullComment(FC, D); return CFC; } @@ -1082,8 +1081,9 @@ void ASTContext::addOverriddenMethod(const CXXMethodDecl *Method, OverriddenMethods[Method].push_back(Overridden); } -void ASTContext::getOverriddenMethods(const NamedDecl *D, - SmallVectorImpl &Overridden) { +void ASTContext::getOverriddenMethods( + const NamedDecl *D, + SmallVectorImpl &Overridden) const { assert(D); if (const CXXMethodDecl *CXXMethod = dyn_cast(D)) {