Home | History | Annotate | Download | only in SemaObjC
      1 // RUN: %clang_cc1 -fsyntax-only -verify %s
      2 // expected-no-diagnostics
      3 
      4 @protocol P0
      5 -bar;
      6 @end
      7 
      8 @interface A <P0>
      9 @end
     10 
     11 // Interface conforms to inherited protocol
     12 
     13 @interface B0 : A <P0>
     14 @end
     15 
     16 @implementation B0
     17 @end
     18 
     19 // Interface conforms to a protocol which extends another. The other
     20 // protocol is inherited, and extended methods are implemented.
     21 
     22 @protocol P1 <P0>
     23 -foo;
     24 @end
     25 
     26 @interface B1 : A <P1>
     27 @end
     28 
     29 @implementation B1
     30 -foo { return 0; };
     31 @end
     32 
     33 // Interface conforms to a protocol whose methods are provided by an
     34 // alternate inherited protocol.
     35 
     36 @protocol P2
     37 -bar;
     38 @end
     39 
     40 @interface B2 : A <P2>
     41 @end
     42 
     43 @implementation B2
     44 @end
     45 
     46 // Interface conforms to a protocol whose methods are provided by a base class.
     47 
     48 @interface A1 
     49 -bar;
     50 @end
     51 
     52 @interface B3 : A1 <P2>
     53 @end
     54 
     55 @implementation B3
     56 @end
     57 
     58