1 | // RUN: %clang_cc1 -ast-print %s -o - | FileCheck %s |
2 | |
3 | @interface NSObject @end |
4 | |
5 | @protocol P |
6 | - (void)MethP __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))); |
7 | @end |
8 | |
9 | @interface I : NSObject <P> |
10 | - (void)MethI __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))); |
11 | @end |
12 | |
13 | @interface I(CAT) |
14 | - (void)MethCAT __attribute__((availability(macosx,introduced=10_1_0,deprecated=10_2))); |
15 | @end |
16 | |
17 | @implementation I |
18 | - (void)MethP __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))) {} |
19 | - (void)MethI __attribute__((availability(macosx,introduced=10.1.0,deprecated=10.2))) {} |
20 | |
21 | - (void)methodWithArg:(int)x andAnotherOne:(int)y { } |
22 | @end |
23 | |
24 | // CHECK: @protocol P |
25 | // CHECK: - (void)MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))); |
26 | // CHECK: @end |
27 | |
28 | // CHECK: @interface I : NSObject<P> |
29 | // CHECK: - (void)MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))); |
30 | // CHECK: @end |
31 | |
32 | // CHECK: @interface I(CAT) |
33 | // CHECK: - (void)MethCAT __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))); |
34 | // CHECK: @end |
35 | |
36 | // CHECK: @implementation I |
37 | // CHECK: - (void)MethP __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) { |
38 | // CHECK: } |
39 | |
40 | // CHECK: - (void)MethI __attribute__((availability(macos, introduced=10.1.0, deprecated=10.2))) { |
41 | // CHECK: } |
42 | |
43 | // CHECK: - (void)methodWithArg:(int)x andAnotherOne:(int)y { |
44 | // CHECK: } |
45 | |
46 | // CHECK: @end |
47 | |
48 | @class C1; |
49 | struct __attribute__((objc_bridge_related(C1,,))) S1; |
50 | |
51 | // CHECK: @class C1; |
52 | // CHECK: struct __attribute__((objc_bridge_related(C1, , ))) S1; |
53 | |
54 | @interface ImplicitPropertyWithSetterOnly |
55 | |
56 | - (void)setX:(int)x; |
57 | |
58 | @end |
59 | |
60 | void printImplicitPropertyWithSetterOnly(ImplicitPropertyWithSetterOnly *x) { |
61 | x.x = 313; // CHECK: x.x = 313; |
62 | } |
63 | |