// RUN: %clang_cc1 -fsyntax-only -verify %s @protocol P - (id) inst_in_proto; @end @interface Object <P> - (id) inst_in_root; @end @interface Base @end @interface Derived: Base - (id)starboard; @end void foo(void) { Class receiver; [Derived starboard]; // expected-warning {{method '+starboard' not found}} [receiver starboard]; // expected-warning {{instance method 'starboard' is being used on 'Class'}} [receiver inst_in_root]; // Ok! [receiver inst_in_proto]; // Ok! }