`@protocol Derived ` must emit an implements edge Derived->Base. Protocol-on-protocol adoption nests under a protocol_reference_list node (distinct from the parameterized_arguments node used by @interface adoption), so the edge was previously dropped. Protocol nodes are labeled
()
| 1108 | |
| 1109 | |
| 1110 | def test_objc_protocol_adopts_protocol(): |
| 1111 | """`@protocol Derived <Base>` must emit an implements edge Derived->Base. |
| 1112 | Protocol-on-protocol adoption nests under a protocol_reference_list node |
| 1113 | (distinct from the parameterized_arguments node used by @interface |
| 1114 | adoption), so the edge was previously dropped. Protocol nodes are labeled |
| 1115 | `<Name>`, so the edge reads (<Derived>, <Base>).""" |
| 1116 | r = extract_objc(FIXTURES / "sample.m") |
| 1117 | assert ("<Derived>", "<Base>") in _edge_labels(r, "implements") |
| 1118 | |
| 1119 | |
| 1120 | def test_objc_property_type_context(): |
nothing calls this directly
no test coverage detected