xref: /llvm-project/clang/test/SemaObjC/receiver-forward-class.m (revision 0f1c1be1968076d6f96f8a7bcc4a15cf195ecd97)
1// RUN: %clang_cc1 -fsyntax-only -Wreceiver-forward-class -verify %s
2// RUN: %clang_cc1 -x objective-c++ -fsyntax-only  -Wreceiver-forward-class -verify %s
3
4@class A; // expected-note {{forward declaration of class here}}
5
6@interface B
7-(int) width; // expected-note {{using}}
8@end
9@interface C
10-(float) width; // expected-note {{also found}}
11@end
12
13int f0(A *x) {
14  return [x width]; // expected-warning {{receiver type 'A' for instance message is a forward declaration}} \
15                    // expected-warning {{multiple methods named 'width' found}} \
16                    // expected-note {{receiver is treated with 'id' type for purpose of method lookup}}
17}
18
19