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