[Type Checker] Add a request kind for ‘dynamic’.

Separate out the semantic state for the ‘dynamic’ check (from the
presence of the attribute), and move all of the computation of the
‘dynamic’ bit into the request-evaluator.

In the process, this fixes a bug where implicitly-synthesized initializers
in subclasses of imported classes would not be implicitly made ‘final’.
This commit is contained in:
Doug Gregor
2018-07-16 15:53:31 -07:00
parent 41a280ae64
commit d9faa7415c
18 changed files with 232 additions and 153 deletions

View File

@@ -2396,8 +2396,6 @@ static void configureDesignatedInitAttributes(TypeChecker &tc,
if (superclassCtor->isRequired())
ctor->getAttrs().add(new (ctx) RequiredAttr(/*IsImplicit=*/true));
if (superclassCtor->isDynamic())
ctor->getAttrs().add(new (ctx) DynamicAttr(/*IsImplicit*/true));
}
ConstructorDecl *