Fix ObjCPropertRefExpr to be able to encode all the information for
uses which refer to methods not properties.
- Not yet wired in Sema.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55681 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/StmtDumper.cpp b/lib/AST/StmtDumper.cpp
index af19b61..a0af132 100644
--- a/lib/AST/StmtDumper.cpp
+++ b/lib/AST/StmtDumper.cpp
@@ -453,12 +453,15 @@
void StmtDumper::VisitObjCPropertyRefExpr(ObjCPropertyRefExpr *Node) {
DumpExpr(Node);
-
- if (ObjCMethodDecl *MD = dyn_cast<ObjCMethodDecl>(Node->getDecl())) {
- fprintf(F, " MethodDecl=\"%s\"", MD->getSelector().getName().c_str());
+
+ if (Node->getKind() == ObjCPropertyRefExpr::MethodRef) {
+ ObjCMethodDecl *Getter = Node->getGetterMethod();
+ ObjCMethodDecl *Setter = Node->getSetterMethod();
+ fprintf(F, " Kind=MethodRef Getter=\"%s\" Setter=\"%s\"",
+ Getter->getSelector().getName().c_str(),
+ Setter ? Setter->getSelector().getName().c_str() : "(null)");
} else {
- ObjCPropertyDecl *PD = dyn_cast<ObjCPropertyDecl>(Node->getDecl());
- fprintf(F, " PropertyDecl=\"%s\"", PD->getName());
+ fprintf(F, " Kind=PropertyRef Property=\"%s\"", Node->getProperty()->getName());
}
}