diff --git a/include/swift/AST/Decl.h b/include/swift/AST/Decl.h index 7f6bafc2cb0..7540bc1b75d 100644 --- a/include/swift/AST/Decl.h +++ b/include/swift/AST/Decl.h @@ -4333,13 +4333,13 @@ public: /// Given that this is an Objective-C property or subscript declaration, /// produce its getter selector. - ObjCSelector getObjCGetterSelector(LazyResolver *resolver = nullptr, - Identifier preferredName = Identifier()) const; + ObjCSelector + getObjCGetterSelector(Identifier preferredName = Identifier()) const; /// Given that this is an Objective-C property or subscript declaration, /// produce its setter selector. - ObjCSelector getObjCSetterSelector(LazyResolver *resolver = nullptr, - Identifier preferredName = Identifier()) const; + ObjCSelector + getObjCSetterSelector(Identifier preferredName = Identifier()) const; AbstractStorageDecl *getOverriddenDecl() const { return OverriddenDecl; @@ -4835,7 +4835,7 @@ public: /// Determine the kind of Objective-C subscripting this declaration /// implies. - ObjCSubscriptKind getObjCSubscriptKind(LazyResolver *resolver) const; + ObjCSubscriptKind getObjCSubscriptKind() const; SubscriptDecl *getOverriddenDecl() const { return cast_or_null( @@ -5121,8 +5121,7 @@ public: const CaptureInfo &getCaptureInfo() const { return Captures; } /// Retrieve the Objective-C selector that names this method. - ObjCSelector getObjCSelector(LazyResolver *resolver = nullptr, - DeclName preferredName = DeclName()) const; + ObjCSelector getObjCSelector(DeclName preferredName = DeclName()) const; /// Determine whether the given method would produce an Objective-C /// instance method. diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 84d9a8aebdc..659a6ec35d8 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -2515,7 +2515,7 @@ bool ASTContext::diagnoseUnintendedObjCMethodOverrides(SourceFile &sf) { // Note: This should be treated as a lookup for intra-module dependency // purposes, but a subclass already depends on its superclasses and any // extensions for many other reasons. - auto selector = method->getObjCSelector(nullptr); + auto selector = method->getObjCSelector(); AbstractFunctionDecl *overriddenMethod = lookupObjCMethodInType(classDecl->getSuperclass(), selector, diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp index 62c0314cfba..44c79c19b33 100644 --- a/lib/AST/Decl.cpp +++ b/lib/AST/Decl.cpp @@ -3908,8 +3908,8 @@ getNameFromObjcAttribute(const ObjCAttr *attr, DeclName preferredName) { return None; } -ObjCSelector AbstractStorageDecl::getObjCGetterSelector( - LazyResolver *resolver, Identifier preferredName) const { +ObjCSelector +AbstractStorageDecl::getObjCGetterSelector(Identifier preferredName) const { // If the getter has an @objc attribute with a name, use that. if (auto getter = getGetter()) { if (auto name = getNameFromObjcAttribute(getter->getAttrs(). @@ -3920,7 +3920,7 @@ ObjCSelector AbstractStorageDecl::getObjCGetterSelector( // Subscripts use a specific selector. auto &ctx = getASTContext(); if (auto *SD = dyn_cast(this)) { - switch (SD->getObjCSubscriptKind(resolver)) { + switch (SD->getObjCSubscriptKind()) { case ObjCSubscriptKind::None: llvm_unreachable("Not an Objective-C subscript"); case ObjCSubscriptKind::Indexed: @@ -3940,8 +3940,8 @@ ObjCSelector AbstractStorageDecl::getObjCGetterSelector( return VarDecl::getDefaultObjCGetterSelector(ctx, name); } -ObjCSelector AbstractStorageDecl::getObjCSetterSelector( - LazyResolver *resolver, Identifier preferredName) const { +ObjCSelector +AbstractStorageDecl::getObjCSetterSelector(Identifier preferredName) const { // If the setter has an @objc attribute with a name, use that. auto setter = getSetter(); auto objcAttr = setter ? setter->getAttrs().getAttribute() @@ -3953,7 +3953,7 @@ ObjCSelector AbstractStorageDecl::getObjCSetterSelector( // Subscripts use a specific selector. auto &ctx = getASTContext(); if (auto *SD = dyn_cast(this)) { - switch (SD->getObjCSubscriptKind(resolver)) { + switch (SD->getObjCSubscriptKind()) { case ObjCSubscriptKind::None: llvm_unreachable("Not an Objective-C subscript"); @@ -4554,8 +4554,7 @@ Type SubscriptDecl::getElementInterfaceType() const { return elementTy->castTo()->getResult(); } -ObjCSubscriptKind SubscriptDecl::getObjCSubscriptKind( - LazyResolver *resolver) const { +ObjCSubscriptKind SubscriptDecl::getObjCSubscriptKind() const { auto indexTy = getIndicesInterfaceType(); // Look through a named 1-tuple. @@ -4741,8 +4740,8 @@ SourceRange AbstractFunctionDecl::getSignatureSourceRange() const { return getNameLoc(); } -ObjCSelector AbstractFunctionDecl::getObjCSelector( - LazyResolver *resolver, DeclName preferredName) const { +ObjCSelector +AbstractFunctionDecl::getObjCSelector(DeclName preferredName) const { // If there is an @objc attribute with a name, use that name. auto *objc = getAttrs().getAttribute(); if (auto name = getNameFromObjcAttribute(objc, preferredName)) { @@ -4780,9 +4779,9 @@ ObjCSelector AbstractFunctionDecl::getObjCSelector( // For a getter or setter, go through the variable or subscript decl. auto asd = accessor->getStorage(); if (accessor->isGetter()) - return asd->getObjCGetterSelector(resolver, baseName); + return asd->getObjCGetterSelector(baseName); if (accessor->isSetter()) - return asd->getObjCSetterSelector(resolver, baseName); + return asd->getObjCSetterSelector(baseName); } // If this is a zero-parameter initializer with a long selector diff --git a/lib/AST/SwiftNameTranslation.cpp b/lib/AST/SwiftNameTranslation.cpp index 2d741c8a5e4..4996f2aa0e1 100644 --- a/lib/AST/SwiftNameTranslation.cpp +++ b/lib/AST/SwiftNameTranslation.cpp @@ -73,9 +73,8 @@ printSwiftEnumElemNameInObjC(const EnumElementDecl *EL, llvm::raw_ostream &OS, std::pair swift::objc_translation:: getObjCNameForSwiftDecl(const ValueDecl *VD, DeclName PreferredName){ ASTContext &Ctx = VD->getASTContext(); - LazyResolver *Resolver = Ctx.getLazyResolver(); if (auto *FD = dyn_cast(VD)) { - return {Identifier(), FD->getObjCSelector(Resolver, PreferredName)}; + return {Identifier(), FD->getObjCSelector(PreferredName)}; } else if (auto *VAD = dyn_cast(VD)) { if (PreferredName) return {PreferredName.getBaseIdentifier(), ObjCSelector()}; diff --git a/lib/Sema/TypeCheckDecl.cpp b/lib/Sema/TypeCheckDecl.cpp index a63493ca252..77b63841934 100644 --- a/lib/Sema/TypeCheckDecl.cpp +++ b/lib/Sema/TypeCheckDecl.cpp @@ -2627,7 +2627,7 @@ static void inferObjCName(TypeChecker &tc, ValueDecl *decl) { // Handle methods first. if (auto overriddenFunc = dyn_cast(overridden)) { // Determine the selector of the overridden method. - ObjCSelector overriddenSelector = overriddenFunc->getObjCSelector(&tc); + ObjCSelector overriddenSelector = overriddenFunc->getObjCSelector(); // Dig out the @objc attribute on the method, if it exists. auto attr = decl->getAttrs().getAttribute(); @@ -2867,7 +2867,7 @@ void swift::markAsObjC(TypeChecker &TC, ValueDecl *D, return None; } }; - auto sel = method->getObjCSelector(&TC); + auto sel = method->getObjCSelector(); if (auto diagID = isForbiddenSelector(sel)) { auto diagInfo = getObjCMethodDiagInfo(method); TC.diagnose(method, *diagID, @@ -6066,14 +6066,13 @@ public: bool objCMatch = false; if (parentDecl->isObjC() && decl->isObjC()) { if (method) { - if (method->getObjCSelector(&TC) - == parentMethod->getObjCSelector(&TC)) + if (method->getObjCSelector() == parentMethod->getObjCSelector()) objCMatch = true; } else if (auto *parentSubscript = dyn_cast(parentStorage)) { // If the subscript kinds don't match, it's not an override. - if (subscript->getObjCSubscriptKind(&TC) - == parentSubscript->getObjCSubscriptKind(&TC)) + if (subscript->getObjCSubscriptKind() + == parentSubscript->getObjCSubscriptKind()) objCMatch = true; } @@ -6170,11 +6169,11 @@ public: if (objCMatch) { if (method) { TC.diagnose(decl, diag::override_objc_type_mismatch_method, - method->getObjCSelector(&TC), declTy); + method->getObjCSelector(), declTy); } else { TC.diagnose(decl, diag::override_objc_type_mismatch_subscript, static_cast( - subscript->getObjCSubscriptKind(&TC)), + subscript->getObjCSubscriptKind()), declTy); } TC.diagnose(parentDecl, diag::overridden_here_with_type, diff --git a/lib/Sema/TypeCheckType.cpp b/lib/Sema/TypeCheckType.cpp index 598e5b6a270..879d0e0123c 100644 --- a/lib/Sema/TypeCheckType.cpp +++ b/lib/Sema/TypeCheckType.cpp @@ -3835,7 +3835,7 @@ bool TypeChecker::isRepresentableInObjC(const SubscriptDecl *SD, return false; // Make sure we know how to map the selector appropriately. - if (Result && SD->getObjCSubscriptKind(this) == ObjCSubscriptKind::None) { + if (Result && SD->getObjCSubscriptKind() == ObjCSubscriptKind::None) { SourceRange IndexRange = SD->getIndices()->getSourceRange(); diagnose(SD->getLoc(), diag::objc_invalid_subscript_key_type, getObjCDiagnosticAttrKind(Reason), IndicesType)