swift-module-digester: keep track of whether a VarDecl is let.

This commit is contained in:
Xi Ge
2018-09-27 12:52:58 -07:00
parent de05cbc350
commit aa1ae1607a
6 changed files with 50 additions and 2 deletions

View File

@@ -95,7 +95,7 @@ SDKNodeDeclTypeAlias::SDKNodeDeclTypeAlias(SDKNodeInitInfo Info):
SDKNodeDeclVar::SDKNodeDeclVar(SDKNodeInitInfo Info):
SDKNodeDecl(Info, SDKNodeKind::DeclVar),
FixedBinaryOrder(Info.FixedBinaryOrder) {}
FixedBinaryOrder(Info.FixedBinaryOrder), IsLet(Info.IsLet) {}
SDKNodeDeclAbstractFunc::SDKNodeDeclAbstractFunc(SDKNodeInitInfo Info,
SDKNodeKind Kind): SDKNodeDecl(Info, Kind), IsThrowing(Info.IsThrowing),
@@ -997,7 +997,9 @@ SDKNodeInitInfo::SDKNodeInitInfo(SDKContext &Ctx, ValueDecl *VD)
}
}
}
if (auto *VAD = dyn_cast<VarDecl>(VD)) {
IsLet = VAD->isLet();
}
// Record whether a subscript has getter/setter.
if (auto *SD = dyn_cast<SubscriptDecl>(VD)) {
HasSetter = SD->getSetter();
@@ -1403,6 +1405,7 @@ void SDKNodeDeclSubscript::jsonize(json::Output &out) {
void SDKNodeDeclVar::jsonize(json::Output &out) {
SDKNodeDecl::jsonize(out);
out.mapOptional(getKeyContent(Ctx, KeyKind::KK_fixedbinaryorder).data(), FixedBinaryOrder);
output(out, KeyKind::KK_isLet, IsLet);
}
namespace swift {