mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Embedded: support existentials with inherited conformances
That means: derived classes where the base conforms to a protocol
This commit is contained in:
@@ -163,6 +163,10 @@ bool BridgedConformance::isSpecializedConformance() const {
|
||||
return swift::isa<swift::SpecializedProtocolConformance>(unbridged().getConcrete());
|
||||
}
|
||||
|
||||
bool BridgedConformance::isInheritedConformance() const {
|
||||
return swift::isa<swift::InheritedProtocolConformance>(unbridged().getConcrete());
|
||||
}
|
||||
|
||||
BridgedASTType BridgedConformance::getType() const {
|
||||
return {unbridged().getConcrete()->getType().getPointer()};
|
||||
}
|
||||
@@ -172,6 +176,11 @@ BridgedConformance BridgedConformance::getGenericConformance() const {
|
||||
return {swift::ProtocolConformanceRef(specPC->getGenericConformance())};
|
||||
}
|
||||
|
||||
BridgedConformance BridgedConformance::getInheritedConformance() const {
|
||||
auto *inheritedConf = swift::cast<swift::InheritedProtocolConformance>(unbridged().getConcrete());
|
||||
return {swift::ProtocolConformanceRef(inheritedConf->getInheritedConformance())};
|
||||
}
|
||||
|
||||
BridgedSubstitutionMap BridgedConformance::getSpecializedSubstitutions() const {
|
||||
auto *specPC = swift::cast<swift::SpecializedProtocolConformance>(unbridged().getConcrete());
|
||||
return {specPC->getSubstitutionMap()};
|
||||
|
||||
Reference in New Issue
Block a user