Mercurial > hg > CbC > CbC_llvm
comparison clang/test/SemaObjC/idiomatic-parentheses.m @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 // RUN: %clang_cc1 -fsyntax-only -verify -Wparentheses -Wno-objc-root-class %s | |
2 | |
3 // Don't warn about some common ObjC idioms unless we have -Widiomatic-parentheses on. | |
4 // <rdar://problem/7382435> | |
5 | |
6 @interface Object | |
7 { | |
8 unsigned uid; | |
9 } | |
10 - (id) init; | |
11 - (id) initWithInt: (int) i; | |
12 - (id) myInit __attribute__((objc_method_family(init))); | |
13 - (void) iterate: (id) coll; | |
14 - (id) nextObject; | |
15 @property unsigned uid; | |
16 @end | |
17 | |
18 @implementation Object | |
19 @synthesize uid; | |
20 - (id) init { | |
21 if (self = [self init]) { | |
22 } | |
23 return self; | |
24 } | |
25 | |
26 - (id) initWithInt: (int) i { | |
27 if (self = [self initWithInt: i]) { | |
28 } | |
29 // rdar://11066598 | |
30 if (self.uid = 100) { // expected-warning {{using the result of an assignment as a condition without parentheses}} \ | |
31 // expected-note {{place parentheses around the assignment to silence this warning}} \ | |
32 // expected-note {{use '==' to turn this assignment into an equality comparison}} | |
33 // ... | |
34 } | |
35 return self; | |
36 } | |
37 | |
38 - (id) myInit { | |
39 if (self = [self myInit]) { | |
40 } | |
41 return self; | |
42 } | |
43 | |
44 - (void) iterate: (id) coll { | |
45 id cur; | |
46 while (cur = [coll nextObject]) { | |
47 } | |
48 } | |
49 | |
50 - (id) nextObject { | |
51 return self; | |
52 } | |
53 @end |