diff --git a/lib/Sema/CodeSynthesis.cpp b/lib/Sema/CodeSynthesis.cpp index 38d6a0d6a3b..882d5373b83 100644 --- a/lib/Sema/CodeSynthesis.cpp +++ b/lib/Sema/CodeSynthesis.cpp @@ -2205,9 +2205,3 @@ swift::createDesignatedInitOverride(TypeChecker &tc, return ctor; } - -void TypeChecker::addImplicitDestructor(ClassDecl *CD) { - auto *DD = CD->addImplicitDestructor(); - if (DD) - typeCheckDecl(DD, /*isFirstPass=*/true); -} diff --git a/lib/Sema/TypeCheckDecl.cpp b/lib/Sema/TypeCheckDecl.cpp index e551d917f94..2e1df7ff320 100644 --- a/lib/Sema/TypeCheckDecl.cpp +++ b/lib/Sema/TypeCheckDecl.cpp @@ -4618,7 +4618,7 @@ public: if (!IsFirstPass) TC.addImplicitConstructors(CD); - TC.addImplicitDestructor(CD); + CD->addImplicitDestructor(); if (!IsFirstPass && !CD->isInvalid()) TC.checkConformancesInContext(CD, CD); @@ -7932,7 +7932,7 @@ static void finalizeType(TypeChecker &TC, NominalTypeDecl *nominal) { // class, you shouldn't have to know what the vtable layout is. if (auto *CD = dyn_cast(nominal)) { TC.addImplicitConstructors(CD); - TC.addImplicitDestructor(CD); + CD->addImplicitDestructor(); } // validateDeclForNameLookup will not trigger an immediate full diff --git a/lib/Sema/TypeChecker.cpp b/lib/Sema/TypeChecker.cpp index eb3f6434b7d..3de266ca99d 100644 --- a/lib/Sema/TypeChecker.cpp +++ b/lib/Sema/TypeChecker.cpp @@ -69,7 +69,7 @@ void TypeChecker::handleExternalDecl(Decl *decl) { addImplicitStructConformances(SD); } if (auto CD = dyn_cast(decl)) { - addImplicitDestructor(CD); + CD->addImplicitDestructor(); } if (auto ED = dyn_cast(decl)) { addImplicitEnumConformances(ED); diff --git a/lib/Sema/TypeChecker.h b/lib/Sema/TypeChecker.h index bf862aef732..b5d4e5b328a 100644 --- a/lib/Sema/TypeChecker.h +++ b/lib/Sema/TypeChecker.h @@ -1517,10 +1517,6 @@ public: /// struct or class. void addImplicitConstructors(NominalTypeDecl *typeDecl); - /// \brief Add an implicitly-defined destructor, if there is no - /// user-provided destructor. - void addImplicitDestructor(ClassDecl *CD); - /// \brief Add the RawOptionSet (todo:, Equatable, and Hashable) methods to an /// imported NS_OPTIONS struct. void addImplicitStructConformances(StructDecl *ED);