blob: 815ae3833d721926e1f420724b2477101f935132 [file] [log] [blame]
Douglas Gregorb5af2e92013-03-07 22:57:58 +00001// RUN: %clang_cc1 -std=c++11 -fdebugger-support -fdebugger-cast-result-to-id -funknown-anytype -fsyntax-only -verify %s
2
3extern __unknown_anytype test0a;
4extern __unknown_anytype test1a();
5extern __unknown_anytype test0b;
6extern __unknown_anytype test1b();
7extern __unknown_anytype test0c;
8extern __unknown_anytype test1c();
9extern __unknown_anytype test0d;
10extern __unknown_anytype test1d();
11extern __unknown_anytype test0d;
12extern __unknown_anytype test1d();
13
14@interface A
15@end
Sean Callanan8870a322012-02-04 02:28:18 +000016
17// rdar://problem/9416370
Douglas Gregorb5af2e92013-03-07 22:57:58 +000018namespace rdar9416370 {
Sean Callanan8870a322012-02-04 02:28:18 +000019 void test(id x) {
20 if ([x foo]) {} // expected-error {{no known method '-foo'; cast the message send to the method's return type}}
21 [x foo];
22 }
23}
Fariborz Jahanianc8a322a2012-03-09 18:47:16 +000024
25// rdar://10988847
26@class NSString; // expected-note {{forward declaration of class here}}
Douglas Gregorb5af2e92013-03-07 22:57:58 +000027namespace rdar10988847 {
28 void test() {
Fariborz Jahanianc8a322a2012-03-09 18:47:16 +000029 id s = [NSString stringWithUTF8String:"foo"]; // expected-warning {{receiver 'NSString' is a forward class and corresponding @interface may not exist}}
30 }
31}
Douglas Gregorb5af2e92013-03-07 22:57:58 +000032
33// rdar://13338107
34namespace rdar13338107 {
35 void test() {
36 id x1 = test0a;
37 id x2 = test1a();
38 A *x3 = test0b;
39 A *x4 = test1b();
40 auto x5 = test0c;
41 auto x6 = test1c();
42 }
43}