@@ -932,16 +932,18 @@ static ModuleDecl *getModuleContextForNameLookupForCxxDecl(const Decl *decl) {
932932 if (!ctx.LangOpts .EnableCXXInterop )
933933 return nullptr ;
934934
935+ auto clangImporter = ctx.getClangModuleLoader ();
936+ ASSERT (clangImporter && " ClangImporter required" );
937+
935938 // When we clone members for base classes the cloned members have no
936939 // corresponding Clang nodes. Look up the original imported declaration to
937940 // figure out what Clang module does the cloned member originate from.
938941 bool isClonedMember = false ;
939942 if (auto VD = dyn_cast<ValueDecl>(decl))
940- if (auto loader = ctx.getClangModuleLoader ())
941- if (auto original = loader->getOriginalForClonedMember (VD)) {
942- isClonedMember = true ;
943- decl = original;
944- }
943+ if (auto original = clangImporter->getOriginalForClonedMember (VD)) {
944+ isClonedMember = true ;
945+ decl = original;
946+ }
945947
946948 if (!decl->hasClangNode ())
947949 return nullptr ;
@@ -956,15 +958,15 @@ static ModuleDecl *getModuleContextForNameLookupForCxxDecl(const Decl *decl) {
956958 return nullptr ;
957959 }
958960
959- auto clangModule = decl-> getClangDecl ()-> getOwningModule ( );
961+ auto clangModule = clangImporter-> getClangOwningModule (decl-> getClangDecl () );
960962 if (!clangModule)
961963 return nullptr ;
962964
963965 // Swift groups all submodules of a Clang module together, and imports them as
964966 // a single top-level module.
965967 clangModule = clangModule->getTopLevelModule ();
966968
967- return ctx. getClangModuleLoader () ->getWrapperForModule (clangModule);
969+ return clangImporter ->getWrapperForModule (clangModule);
968970}
969971
970972ModuleDecl *Decl::getModuleContextForNameLookup () const {
0 commit comments