diff options
Diffstat (limited to 'lib/AST/StmtPrinter.cpp')
| -rw-r--r-- | lib/AST/StmtPrinter.cpp | 16 | 
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/AST/StmtPrinter.cpp b/lib/AST/StmtPrinter.cpp index 205ea0d182d40..a7e42af04d81b 100644 --- a/lib/AST/StmtPrinter.cpp +++ b/lib/AST/StmtPrinter.cpp @@ -1145,17 +1145,19 @@ StmtPrinter::VisitCXXUnresolvedConstructExpr(  void StmtPrinter::VisitCXXDependentScopeMemberExpr(                                           CXXDependentScopeMemberExpr *Node) { -  PrintExpr(Node->getBase()); -  OS << (Node->isArrow() ? "->" : "."); +  if (!Node->isImplicitAccess()) { +    PrintExpr(Node->getBase()); +    OS << (Node->isArrow() ? "->" : "."); +  }    if (NestedNameSpecifier *Qualifier = Node->getQualifier())      Qualifier->print(OS, Policy); -  else if (Node->hasExplicitTemplateArgumentList()) +  else if (Node->hasExplicitTemplateArgs())      // FIXME: Track use of "template" keyword explicitly?      OS << "template ";    OS << Node->getMember().getAsString(); -  if (Node->hasExplicitTemplateArgumentList()) { +  if (Node->hasExplicitTemplateArgs()) {      OS << TemplateSpecializationType::PrintTemplateArgumentList(                                                      Node->getTemplateArgs(),                                                      Node->getNumTemplateArgs(), @@ -1164,8 +1166,10 @@ void StmtPrinter::VisitCXXDependentScopeMemberExpr(  }  void StmtPrinter::VisitUnresolvedMemberExpr(UnresolvedMemberExpr *Node) { -  PrintExpr(Node->getBase()); -  OS << (Node->isArrow() ? "->" : "."); +  if (!Node->isImplicitAccess()) { +    PrintExpr(Node->getBase()); +    OS << (Node->isArrow() ? "->" : "."); +  }    if (NestedNameSpecifier *Qualifier = Node->getQualifier())      Qualifier->print(OS, Policy);  | 
