Files
swift-mirror/test/SymbolGraph/Relationships/DefaultImplementationOf/Indirect.swift
Ashley Garland 8316157c5e [SymbolGraph] Don't emit memberOf for default implementations or requirements
To differentiate between freestanding extensions of protocols and matching
default implementations with their requirements. Otherwise, it's difficult to
filter out "duplicate" entries for protocols.

rdar://61459287
2020-04-14 20:13:00 -07:00

20 lines
652 B
Swift

// RUN: %empty-directory(%t)
// RUN: %target-build-swift %s -module-name Indirect -emit-module -emit-module-path %t/
// RUN: %target-swift-symbolgraph-extract -module-name Indirect -I %t -pretty-print -output-dir %t
// RUN: %FileCheck %s --input-file %t/Indirect.symbols.json
public protocol P {
func foo()
}
public protocol Q : P {}
extension Q {
public func foo() {}
}
// CHECK-DAG: "kind": "defaultImplementationOf",{{[[:space:]]*}}"source": "s:8Indirect1QPAAE3fooyyF",{{[[:space:]]*}}"target": "s:8Indirect1PP3fooyyF"
// Since foo is a default implementation of a requirment, we don't consider this to be a "member"
// CHECK-NOT: memberOf