@@ -126,7 +126,9 @@ SDKNodeTypeAlias::SDKNodeTypeAlias(SDKNodeInitInfo Info):
126126SDKNodeDeclType::SDKNodeDeclType (SDKNodeInitInfo Info):
127127 SDKNodeDecl(Info, SDKNodeKind::DeclType), SuperclassUsr(Info.SuperclassUsr),
128128 SuperclassNames(Info.SuperclassNames),
129- EnumRawTypeName(Info.EnumRawTypeName), IsExternal(Info.IsExternal),
129+ EnumRawTypeName(Info.EnumRawTypeName),
130+ IsExternal(Info.IsExternal),
131+ IsEnumExhaustive(Info.IsEnumExhaustive),
130132 HasMissingDesignatedInitializers(Info.HasMissingDesignatedInitializers),
131133 InheritsConvenienceInitializers(Info.InheritsConvenienceInitializers) {}
132134
@@ -1426,6 +1428,7 @@ SDKNodeInitInfo::SDKNodeInitInfo(SDKContext &Ctx, ValueDecl *VD)
14261428
14271429 // Get enum raw type name if this is an enum.
14281430 if (auto *ED = dyn_cast<EnumDecl>(VD)) {
1431+ IsEnumExhaustive = ED->isFormallyExhaustive (nullptr );
14291432 if (auto RT = ED->getRawType ()) {
14301433 if (auto *D = RT->getNominalOrBoundGenericNominal ()) {
14311434 EnumRawTypeName = D->getName ().str ();
@@ -1981,6 +1984,7 @@ void SDKNodeDeclType::jsonize(json::Output &out) {
19811984 output (out, KeyKind::KK_superclassUsr, SuperclassUsr);
19821985 output (out, KeyKind::KK_enumRawTypeName, EnumRawTypeName);
19831986 output (out, KeyKind::KK_isExternal, IsExternal);
1987+ output (out, KeyKind::KK_isEnumExhaustive, IsEnumExhaustive);
19841988 output (out, KeyKind::KK_hasMissingDesignatedInitializers,
19851989 HasMissingDesignatedInitializers);
19861990 output (out, KeyKind::KK_inheritsConvenienceInitializers,
0 commit comments