SIL: add some APIs for InitExistentialAddrInst

* `var conformances: ConformanceArray`
* `var formalConcreteType: CanonicalType`
This commit is contained in:
Erik Eckstein
2025-11-11 10:19:13 +01:00
committed by Arnold Schwaighofer
parent 60a28cd570
commit b218d9ab5c
3 changed files with 10 additions and 0 deletions

View File

@@ -883,6 +883,10 @@ class InitExistentialAddrInst : SingleValueInstruction, UnaryInstruction {
public var conformances: ConformanceArray {
ConformanceArray(bridged: bridged.InitExistentialAddrInst_getConformances())
}
public var formalConcreteType: CanonicalType {
CanonicalType(bridged: bridged.InitExistentialAddrInst_getFormalConcreteType())
}
}
final public

View File

@@ -798,6 +798,7 @@ struct BridgedInstruction {
SWIFT_IMPORT_UNSAFE BRIDGED_INLINE BridgedConformanceArray InitExistentialRefInst_getConformances() const;
SWIFT_IMPORT_UNSAFE BRIDGED_INLINE BridgedCanType InitExistentialRefInst_getFormalConcreteType() const;
SWIFT_IMPORT_UNSAFE BRIDGED_INLINE BridgedConformanceArray InitExistentialAddrInst_getConformances() const;
SWIFT_IMPORT_UNSAFE BRIDGED_INLINE BridgedCanType InitExistentialAddrInst_getFormalConcreteType() const;
BRIDGED_INLINE bool OpenExistentialAddr_isImmutable() const;
SWIFT_IMPORT_UNSAFE BRIDGED_INLINE BridgedGlobalVar GlobalAccessInst_getGlobal() const;
SWIFT_IMPORT_UNSAFE BRIDGED_INLINE BridgedGlobalVar AllocGlobalInst_getGlobal() const;

View File

@@ -1252,6 +1252,11 @@ BridgedCanType BridgedInstruction::InitExistentialRefInst_getFormalConcreteType(
BridgedConformanceArray BridgedInstruction::InitExistentialAddrInst_getConformances() const {
return {getAs<swift::InitExistentialAddrInst>()->getConformances()};
}
BridgedCanType BridgedInstruction::InitExistentialAddrInst_getFormalConcreteType() const {
return getAs<swift::InitExistentialAddrInst>()->getFormalConcreteType();
}
bool BridgedInstruction::OpenExistentialAddr_isImmutable() const {
switch (getAs<swift::OpenExistentialAddrInst>()->getAccessKind()) {
case swift::OpenedExistentialAccess::Immutable: return true;