@@ -141,6 +141,9 @@ class CommonTypeInfo : public CommonEntityInfo {
141141 // / The NS error domain for this type.
142142 std::optional<std::string> NSErrorDomain;
143143
144+ // / The Swift protocol that this type should be automatically conformed to.
145+ std::optional<std::string> SwiftConformance;
146+
144147public:
145148 CommonTypeInfo () {}
146149
@@ -165,6 +168,14 @@ class CommonTypeInfo : public CommonEntityInfo {
165168 : std::nullopt ;
166169 }
167170
171+ std::optional<std::string> getSwiftConformance () const {
172+ return SwiftConformance;
173+ }
174+
175+ void setSwiftConformance (std::optional<std::string> conformance) {
176+ SwiftConformance = conformance;
177+ }
178+
168179 friend bool operator ==(const CommonTypeInfo &, const CommonTypeInfo &);
169180
170181 CommonTypeInfo &operator |=(const CommonTypeInfo &RHS) {
@@ -175,6 +186,8 @@ class CommonTypeInfo : public CommonEntityInfo {
175186 setSwiftBridge (RHS.getSwiftBridge ());
176187 if (!NSErrorDomain)
177188 setNSErrorDomain (RHS.getNSErrorDomain ());
189+ if (SwiftConformance)
190+ setSwiftConformance (RHS.getSwiftConformance ());
178191
179192 return *this ;
180193 }
@@ -185,7 +198,8 @@ class CommonTypeInfo : public CommonEntityInfo {
185198inline bool operator ==(const CommonTypeInfo &LHS, const CommonTypeInfo &RHS) {
186199 return static_cast <const CommonEntityInfo &>(LHS) == RHS &&
187200 LHS.SwiftBridge == RHS.SwiftBridge &&
188- LHS.NSErrorDomain == RHS.NSErrorDomain ;
201+ LHS.NSErrorDomain == RHS.NSErrorDomain &&
202+ LHS.SwiftConformance == RHS.SwiftConformance ;
189203}
190204
191205inline bool operator !=(const CommonTypeInfo &LHS, const CommonTypeInfo &RHS) {
@@ -739,9 +753,6 @@ class TagInfo : public CommonTypeInfo {
739753 std::optional<std::string> SwiftReleaseOp;
740754 std::optional<std::string> SwiftDefaultOwnership;
741755
742- // / The Swift protocol that this type should be automatically conformed to.
743- std::optional<std::string> SwiftConformance;
744-
745756 std::optional<EnumExtensibilityKind> EnumExtensibility;
746757
747758 TagInfo ()
@@ -790,9 +801,6 @@ class TagInfo : public CommonTypeInfo {
790801 if (!SwiftDefaultOwnership)
791802 SwiftDefaultOwnership = RHS.SwiftDefaultOwnership ;
792803
793- if (!SwiftConformance)
794- SwiftConformance = RHS.SwiftConformance ;
795-
796804 if (!HasFlagEnum)
797805 setFlagEnum (RHS.isFlagEnum ());
798806
@@ -819,7 +827,6 @@ inline bool operator==(const TagInfo &LHS, const TagInfo &RHS) {
819827 LHS.SwiftRetainOp == RHS.SwiftRetainOp &&
820828 LHS.SwiftReleaseOp == RHS.SwiftReleaseOp &&
821829 LHS.SwiftDefaultOwnership == RHS.SwiftDefaultOwnership &&
822- LHS.SwiftConformance == RHS.SwiftConformance &&
823830 LHS.isFlagEnum () == RHS.isFlagEnum () &&
824831 LHS.isSwiftCopyable () == RHS.isSwiftCopyable () &&
825832 LHS.isSwiftEscapable () == RHS.isSwiftEscapable () &&
0 commit comments