Skip to content

Commit dbedb21

Browse files
authored
Merge pull request #82929 from bnbarham/revert-allow-qual-swift-name
Revert "[cxx-interop] Allow import-as-member for types in namespaces"
2 parents 21ded5c + dd809c6 commit dbedb21

File tree

8 files changed

+15
-148
lines changed

8 files changed

+15
-148
lines changed

lib/ClangImporter/SwiftLookupTable.cpp

Lines changed: 13 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ bool SwiftLookupTable::contextRequiresName(ContextKind kind) {
219219

220220
/// Try to translate the given Clang declaration into a context.
221221
static std::optional<SwiftLookupTable::StoredContext>
222-
translateDeclToContext(const clang::NamedDecl *decl) {
222+
translateDeclToContext(clang::NamedDecl *decl) {
223223
// Tag declaration.
224224
if (auto tag = dyn_cast<clang::TagDecl>(decl)) {
225225
if (tag->getIdentifier())
@@ -324,46 +324,22 @@ SwiftLookupTable::translateContext(EffectiveClangContext context) {
324324

325325
/// Lookup an unresolved context name and resolve it to a Clang
326326
/// declaration context or typedef name.
327-
const clang::NamedDecl *
328-
SwiftLookupTable::resolveContext(StringRef unresolvedName) {
329-
SmallVector<StringRef, 1> nameComponents;
330-
unresolvedName.split(nameComponents, '.');
331-
332-
EffectiveClangContext parentContext;
333-
327+
clang::NamedDecl *SwiftLookupTable::resolveContext(StringRef unresolvedName) {
334328
// Look for a context with the given Swift name.
335-
for (auto nameComponent : nameComponents) {
336-
auto entries =
337-
parentContext
338-
? lookup(SerializedSwiftName(nameComponent), parentContext)
339-
: lookup(SerializedSwiftName(nameComponent),
340-
std::make_pair(ContextKind::TranslationUnit, StringRef()));
341-
bool entryFound = false;
342-
for (auto entry : entries) {
343-
if (auto decl = entry.dyn_cast<clang::NamedDecl *>()) {
344-
if (isa<clang::TagDecl>(decl) ||
345-
isa<clang::ObjCInterfaceDecl>(decl) ||
346-
isa<clang::NamespaceDecl>(decl)) {
347-
entryFound = true;
348-
parentContext = EffectiveClangContext(cast<clang::DeclContext>(decl));
349-
break;
350-
}
351-
if (auto typedefDecl = dyn_cast<clang::TypedefNameDecl>(decl)) {
352-
entryFound = true;
353-
parentContext = EffectiveClangContext(typedefDecl);
354-
break;
355-
}
356-
}
329+
for (auto entry :
330+
lookup(SerializedSwiftName(unresolvedName),
331+
std::make_pair(ContextKind::TranslationUnit, StringRef()))) {
332+
if (auto decl = entry.dyn_cast<clang::NamedDecl *>()) {
333+
if (isa<clang::TagDecl>(decl) ||
334+
isa<clang::ObjCInterfaceDecl>(decl) ||
335+
isa<clang::TypedefNameDecl>(decl))
336+
return decl;
357337
}
358-
359-
// If we could not resolve this component of the qualified name, bail.
360-
if (!entryFound)
361-
return nullptr;
362338
}
363339

364-
return parentContext.getAsDeclContext()
365-
? cast<clang::NamedDecl>(parentContext.getAsDeclContext())
366-
: parentContext.getTypedefName();
340+
// FIXME: Search imported modules to resolve the context.
341+
342+
return nullptr;
367343
}
368344

369345
void SwiftLookupTable::addCategory(clang::ObjCCategoryDecl *category) {

lib/ClangImporter/SwiftLookupTable.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -593,7 +593,7 @@ class SwiftLookupTable {
593593
public:
594594
/// Lookup an unresolved context name and resolve it to a Clang
595595
/// named declaration.
596-
const clang::NamedDecl *resolveContext(StringRef unresolvedName);
596+
clang::NamedDecl *resolveContext(StringRef unresolvedName);
597597

598598
/// Lookup the set of entities with the given base name.
599599
///

test/APINotes/Inputs/broken-modules/BrokenAPINotes.apinotes

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ Functions:
1313
- Name: ZXSpectrumSetMisnamedRegister
1414
SwiftName: 'setter:ZXSpectrum.misnamedRegister(self:newValue:)'
1515
- Name: ZXSpectrumHelperReset
16-
SwiftName: 'ZXSpectrum::Helper.reset()'
16+
SwiftName: 'ZXSpectrum.Helper.reset()'

test/Interop/Cxx/namespace/Inputs/import-as-member.h

Lines changed: 0 additions & 32 deletions
This file was deleted.

test/Interop/Cxx/namespace/Inputs/module.modulemap

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,6 @@ module Enums {
6060
requires cplusplus
6161
}
6262

63-
module ImportAsMember {
64-
header "import-as-member.h"
65-
export *
66-
requires cplusplus
67-
}
68-
6963
module MembersDirect {
7064
header "members-direct.h"
7165
requires cplusplus

test/Interop/Cxx/namespace/import-as-member-module-interface.swift

Lines changed: 0 additions & 16 deletions
This file was deleted.

test/Interop/Cxx/namespace/import-as-member-typechecker.swift

Lines changed: 0 additions & 24 deletions
This file was deleted.

test/Interop/Cxx/namespace/import-as-member.swift

Lines changed: 0 additions & 31 deletions
This file was deleted.

0 commit comments

Comments
 (0)