mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
ClangImporter: Ignore missing imports in SwiftDeclConverter::recordObjCOverride().
`recordObjCOverride()` records semantic overrides for imported Obj-C methods. Since these methods are imported from a different language, it doesn't make sense to enforce Swift's member import visibility rules when performing lookups to find overridden methods. Doing so caused the Constrain Solver to lack important information needed to eliminate overloads, resulting in erroneous ambiguities. Resolves rdar://141636723.
This commit is contained in:
@@ -7226,9 +7226,9 @@ void SwiftDeclConverter::recordObjCOverride(AbstractFunctionDecl *decl) {
|
||||
return;
|
||||
// Dig out the Objective-C superclass.
|
||||
SmallVector<ValueDecl *, 4> results;
|
||||
superDecl->lookupQualified(superDecl, DeclNameRef(decl->getName()),
|
||||
decl->getLoc(), NL_QualifiedDefault,
|
||||
results);
|
||||
superDecl->lookupQualified(
|
||||
superDecl, DeclNameRef(decl->getName()), decl->getLoc(),
|
||||
NL_QualifiedDefault | NL_IgnoreMissingImports, results);
|
||||
for (auto member : results) {
|
||||
if (member->getKind() != decl->getKind() ||
|
||||
member->isInstanceMember() != decl->isInstanceMember() ||
|
||||
|
||||
Reference in New Issue
Block a user