From: Argyrios Kyrtzidis Date: Tue, 22 May 2012 00:47:53 +0000 (+0000) Subject: [objcmt] Don't add redundant parentheses when migrating subscripting of an ivar. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2bddd43bd87efedc308094e80af3917ef2c9a0d4;p=clang [objcmt] Don't add redundant parentheses when migrating subscripting of an ivar. rdar://11501256 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157227 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Edit/RewriteObjCFoundationAPI.cpp b/lib/Edit/RewriteObjCFoundationAPI.cpp index 846d58fc2c..7445700cc4 100644 --- a/lib/Edit/RewriteObjCFoundationAPI.cpp +++ b/lib/Edit/RewriteObjCFoundationAPI.cpp @@ -624,6 +624,7 @@ static bool subscriptOperatorNeedsParens(const Expr *FullExpr) { isa(Expr) || isa(Expr) || isa(Expr) || + isa(Expr) || isa(FullExpr) || isa(Expr) || isa(Expr)) @@ -650,6 +651,7 @@ static bool castOperatorNeedsParens(const Expr *FullExpr) { isa(Expr) || isa(Expr) || isa(Expr) || + isa(Expr) || isa(FullExpr) || isa(Expr) || isa(Expr) || diff --git a/test/ARCMT/objcmt-subscripting-literals.m b/test/ARCMT/objcmt-subscripting-literals.m index 0371e2e2ca..6d626c4683 100644 --- a/test/ARCMT/objcmt-subscripting-literals.m +++ b/test/ARCMT/objcmt-subscripting-literals.m @@ -77,7 +77,9 @@ typedef const struct __CFString * CFStringRef; #define PAIR(x) @#x, [NSNumber numberWithInt:(x)] #define TWO(x) ((x), (x)) -@interface I +@interface I { + NSArray *ivarArr; +} @end @implementation I -(void) foo { @@ -138,6 +140,7 @@ typedef const struct __CFString * CFStringRef; o = [*parr objectAtIndex:2]; void *hd; o = [(NSArray*)hd objectAtIndex:2]; + o = [ivarArr objectAtIndex:2]; } @end diff --git a/test/ARCMT/objcmt-subscripting-literals.m.result b/test/ARCMT/objcmt-subscripting-literals.m.result index 333d0b4c38..a4eca6a447 100644 --- a/test/ARCMT/objcmt-subscripting-literals.m.result +++ b/test/ARCMT/objcmt-subscripting-literals.m.result @@ -77,7 +77,9 @@ typedef const struct __CFString * CFStringRef; #define PAIR(x) @#x, [NSNumber numberWithInt:(x)] #define TWO(x) ((x), (x)) -@interface I +@interface I { + NSArray *ivarArr; +} @end @implementation I -(void) foo { @@ -138,6 +140,7 @@ typedef const struct __CFString * CFStringRef; o = (*parr)[2]; void *hd; o = ((NSArray*)hd)[2]; + o = ivarArr[2]; } @end