[AST] Remove unused LazyResolver parameter from ObjC-selector-related Decl methods

This commit is contained in:
Stephan Tolksdorf
2018-02-26 23:35:07 +01:00
parent 984dafe55b
commit 79cef77ce0
6 changed files with 27 additions and 31 deletions

View File

@@ -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.

View File

@@ -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,

View File

@@ -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

View File

@@ -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()};

View File

@@ -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,

View File

@@ -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)