Merge pull request #23932 from xymus/IsFinalRequest

Sema: implement `isFinal` using a request evaluator
This commit is contained in:
Alexis Laferrière
2019-04-19 13:02:07 -07:00
committed by GitHub
13 changed files with 195 additions and 89 deletions

View File

@@ -2751,6 +2751,11 @@ void Serializer::writeDecl(const Decl *D) {
writeDeclAttribute(Attr);
}
if (auto VD = dyn_cast<ValueDecl>(D)) {
if (VD->isFinal() && !D->getAttrs().hasAttribute<FinalAttr>())
writeDeclAttribute(new (D->getASTContext()) FinalAttr(/*Implicit=*/false));
}
if (auto *value = dyn_cast<ValueDecl>(D)) {
auto *storage = dyn_cast<AbstractStorageDecl>(value);
auto access = value->getFormalAccess();