What's up with this hiding? It makes the ObjC sema generally difficult
to hack on. Could we rename these not to shadow, or otherwise set the
base values as appropriate?
Alp.
On 08/06/2014 02:31, Alp Toker wrote:
Author: alp
Date: Sat Jun 7 18:31:01 2014
New Revision: 210404
URL: http://llvm.org/viewvc/llvm-project?rev=210404&view=rev
Log:
DeclObjC: Fix comments about bad API
What's going on here isn't overriding but rather the sketchy practice of member
hiding (shadowing of base members).
Modified:
cfe/trunk/include/clang/AST/DeclObjC.h
Modified: cfe/trunk/include/clang/AST/DeclObjC.h
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/DeclObjC.h?rev=210404&r1=210403&r2=210404&view=diff
==============================================================================
--- cfe/trunk/include/clang/AST/DeclObjC.h (original)
+++ cfe/trunk/include/clang/AST/DeclObjC.h Sat Jun 7 18:31:01 2014
@@ -1927,8 +1927,8 @@ public:
/// getIdentifier - Get the identifier that names the category
/// interface associated with this implementation.
- /// FIXME: This is a bad API, we are overriding the
NamedDecl::getIdentifier()
- /// to mean something different. For example:
+ /// FIXME: This is a bad API, we are hiding NamedDecl::getIdentifier()
+ /// with a different meaning. For example:
/// ((NamedDecl *)SomeCategoryImplDecl)->getIdentifier()
/// returns the class interface name, whereas
/// ((ObjCCategoryImplDecl *)SomeCategoryImplDecl)->getIdentifier()
@@ -1945,8 +1945,8 @@ public:
/// getName - Get the name of identifier for the class interface associated
/// with this implementation as a StringRef.
//
- // FIXME: This is a bad API, we are overriding the NamedDecl::getName, to
mean
- // something different.
+ // FIXME: This is a bad API, we are hiding NamedDecl::getName with a
different
+ // meaning.
StringRef getName() const { return Id ? Id->getName() : StringRef(); }
/// @brief Get the name of the class associated with this interface.
@@ -2087,8 +2087,8 @@ public:
/// getName - Get the name of identifier for the class interface associated
/// with this implementation as a StringRef.
//
- // FIXME: This is a bad API, we are overriding the NamedDecl::getName, to
mean
- // something different.
+ // FIXME: This is a bad API, we are hiding NamedDecl::getName with a
different
+ // meaning.
StringRef getName() const {
assert(getIdentifier() && "Name is not a simple identifier");
return getIdentifier()->getName();
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
--
http://www.nuanti.com
the browser experts
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits