mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[AST] Remove unused LazyResolver parameter from ObjC-selector-related Decl methods
This commit is contained in:
@@ -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<SubscriptDecl>(
|
||||
@@ -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.
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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<SubscriptDecl>(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<ObjCAttr>()
|
||||
@@ -3953,7 +3953,7 @@ ObjCSelector AbstractStorageDecl::getObjCSetterSelector(
|
||||
// Subscripts use a specific selector.
|
||||
auto &ctx = getASTContext();
|
||||
if (auto *SD = dyn_cast<SubscriptDecl>(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<AnyFunctionType>()->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<ObjCAttr>();
|
||||
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
|
||||
|
||||
@@ -73,9 +73,8 @@ printSwiftEnumElemNameInObjC(const EnumElementDecl *EL, llvm::raw_ostream &OS,
|
||||
std::pair<Identifier, ObjCSelector> swift::objc_translation::
|
||||
getObjCNameForSwiftDecl(const ValueDecl *VD, DeclName PreferredName){
|
||||
ASTContext &Ctx = VD->getASTContext();
|
||||
LazyResolver *Resolver = Ctx.getLazyResolver();
|
||||
if (auto *FD = dyn_cast<AbstractFunctionDecl>(VD)) {
|
||||
return {Identifier(), FD->getObjCSelector(Resolver, PreferredName)};
|
||||
return {Identifier(), FD->getObjCSelector(PreferredName)};
|
||||
} else if (auto *VAD = dyn_cast<VarDecl>(VD)) {
|
||||
if (PreferredName)
|
||||
return {PreferredName.getBaseIdentifier(), ObjCSelector()};
|
||||
|
||||
@@ -2627,7 +2627,7 @@ static void inferObjCName(TypeChecker &tc, ValueDecl *decl) {
|
||||
// Handle methods first.
|
||||
if (auto overriddenFunc = dyn_cast<AbstractFunctionDecl>(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<ObjCAttr>();
|
||||
@@ -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<SubscriptDecl>(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<unsigned>(
|
||||
subscript->getObjCSubscriptKind(&TC)),
|
||||
subscript->getObjCSubscriptKind()),
|
||||
declTy);
|
||||
}
|
||||
TC.diagnose(parentDecl, diag::overridden_here_with_type,
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user