diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2007-10-11 18:08:47 +0000 | 
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2007-10-11 18:08:47 +0000 | 
| commit | d797113659e7514a6cad0aee94a3ca7d7a0f6acf (patch) | |
| tree | a03c8b7dcc2254b0e3741b8dba3dc4204e5f7ee1 /clang/AST/Type.cpp | |
| parent | 007aa378adced52180f37936f3938bbcaaf6d176 (diff) | |
| download | bcm5719-llvm-d797113659e7514a6cad0aee94a3ca7d7a0f6acf.tar.gz bcm5719-llvm-d797113659e7514a6cad0aee94a3ca7d7a0f6acf.zip | |
Implemented parsing of objctive-c protocol conforming type used in 
an identifier statement. Fixed up pretty priting to print this type 
correctly.
llvm-svn: 42866
Diffstat (limited to 'clang/AST/Type.cpp')
| -rw-r--r-- | clang/AST/Type.cpp | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/clang/AST/Type.cpp b/clang/AST/Type.cpp index 7deee66070d..af07d7a1be8 100644 --- a/clang/AST/Type.cpp +++ b/clang/AST/Type.cpp @@ -858,14 +858,18 @@ void ObjcInterfaceType::getAsStringInternal(std::string &InnerString) const {  void ObjcQualifiedInterfaceType::getAsStringInternal(                                    std::string &InnerString) const { -  InnerString = getInterfaceType()->getDecl()->getName() + '<'; +  if (!InnerString.empty())    // Prefix the basic type, e.g. 'typedefname X'. +    InnerString = ' ' + InnerString; +  std::string ObjcQIString = getInterfaceType()->getDecl()->getName(); +  ObjcQIString += '<';    int num = getNumProtocols();    for (int i = 0; i < num; i++) { -    InnerString += getProtocols(i)->getName(); +    ObjcQIString += getProtocols(i)->getName();      if (i < num-1) -      InnerString += ','; +      ObjcQIString += ',';    } -  InnerString += '>'; +  ObjcQIString += '>'; +  InnerString = ObjcQIString + InnerString;  }  void TagType::getAsStringInternal(std::string &InnerString) const { | 

