1// Objective-C recovery
2// RUN: cp %s %t
3// RUN: not %clang_cc1 -pedantic -Wall -fixit -x objective-c %t
4// RUN: %clang_cc1 -fsyntax-only -pedantic -Wall -Werror -x objective-c %t
5
6// Objective-C++ recovery
7// RUN: cp %s %t
8// RUN: not %clang_cc1 -pedantic -Wall -fixit -x objective-c++ %t
9// RUN: %clang_cc1 -fsyntax-only -pedantic -Wall -Werror -x objective-c++ %t
10
11@interface A
12- (int)method1:(int)x second:(float)y;
13+ (int)method2:(int)x second:(double)y;
14- (int)getBlah;
15@end
16
17void f(A *a, int i, int j) {
18  a method1:5+2 second:+(3.14159)];
19  a method1:[a method1:3 second:j] second:i++]
20  a getBlah];
21
22  int array[17];
23  (void)array[a method1:5+2 second:+(3.14159)]];
24  (A method2:5+2 second:3.14159]);
25  A method2:5+2 second:3.14159]
26  if (A method2:5+2 second:3.14159]) { }
27}
28
29@interface B : A
30- (int)method1:(int)x second:(float)y;
31@end
32
33@implementation B
34- (int)method1:(int)x second:(float)y {
35  super method1:x second:y];
36  return super getBlah];
37}
38@end
39