@@ -1172,7 +1172,7 @@ ClangImporter::create(ASTContext &ctx, const ClangImporterOptions &importerOpts,
1172
1172
bool ClangImporter::addSearchPath (StringRef newSearchPath, bool isFramework,
1173
1173
bool isSystem) {
1174
1174
clang::FileManager &fileMgr = Impl.Instance ->getFileManager ();
1175
- const clang::DirectoryEntry * entry = fileMgr.getDirectory (newSearchPath);
1175
+ auto entry = fileMgr.getDirectory (newSearchPath);
1176
1176
if (!entry)
1177
1177
return true ;
1178
1178
@@ -1181,8 +1181,8 @@ bool ClangImporter::addSearchPath(StringRef newSearchPath, bool isFramework,
1181
1181
headerSearchInfo.search_dir_end (),
1182
1182
[&](const clang::DirectoryLookup &lookup) -> bool {
1183
1183
if (isFramework)
1184
- return lookup.getFrameworkDir () == entry;
1185
- return lookup.getDir () == entry;
1184
+ return lookup.getFrameworkDir () == * entry;
1185
+ return lookup.getDir () == * entry;
1186
1186
});
1187
1187
if (exists) {
1188
1188
// Don't bother adding a search path that's already there. Clang would have
@@ -1191,7 +1191,7 @@ bool ClangImporter::addSearchPath(StringRef newSearchPath, bool isFramework,
1191
1191
}
1192
1192
1193
1193
auto kind = isSystem ? clang::SrcMgr::C_System : clang::SrcMgr::C_User;
1194
- headerSearchInfo.AddSearchPath ({entry, kind, isFramework},
1194
+ headerSearchInfo.AddSearchPath ({* entry, kind, isFramework},
1195
1195
/* isAngled=*/ true );
1196
1196
1197
1197
// In addition to changing the current preprocessor directly, we still need
@@ -1353,10 +1353,9 @@ bool ClangImporter::importHeader(StringRef header, ModuleDecl *adapter,
1353
1353
off_t expectedSize, time_t expectedModTime,
1354
1354
StringRef cachedContents, SourceLoc diagLoc) {
1355
1355
clang::FileManager &fileManager = Impl.Instance ->getFileManager ();
1356
- const clang::FileEntry *headerFile = fileManager.getFile (header,
1357
- /* OpenFile=*/ true );
1358
- if (headerFile && headerFile->getSize () == expectedSize &&
1359
- headerFile->getModificationTime () == expectedModTime) {
1356
+ auto headerFile = fileManager.getFile (header, /* OpenFile=*/ true );
1357
+ if (headerFile && (*headerFile)->getSize () == expectedSize &&
1358
+ (*headerFile)->getModificationTime () == expectedModTime) {
1360
1359
return importBridgingHeader (header, adapter, diagLoc, false , true );
1361
1360
}
1362
1361
@@ -1389,8 +1388,7 @@ bool ClangImporter::importBridgingHeader(StringRef header, ModuleDecl *adapter,
1389
1388
}
1390
1389
1391
1390
clang::FileManager &fileManager = Impl.Instance ->getFileManager ();
1392
- const clang::FileEntry *headerFile = fileManager.getFile (header,
1393
- /* OpenFile=*/ true );
1391
+ auto headerFile = fileManager.getFile (header, /* OpenFile=*/ true );
1394
1392
if (!headerFile) {
1395
1393
Impl.SwiftContext .Diags .diagnose (diagLoc, diag::bridging_header_missing,
1396
1394
header);
@@ -1466,9 +1464,10 @@ std::string ClangImporter::getBridgingHeaderContents(StringRef headerPath,
1466
1464
return " " ;
1467
1465
}
1468
1466
1469
- const clang::FileEntry *fileInfo = fileManager.getFile (headerPath);
1470
- fileSize = fileInfo->getSize ();
1471
- fileModTime = fileInfo->getModificationTime ();
1467
+ if (auto fileInfo = fileManager.getFile (headerPath)) {
1468
+ fileSize = (*fileInfo)->getSize ();
1469
+ fileModTime = (*fileInfo)->getModificationTime ();
1470
+ }
1472
1471
return result;
1473
1472
}
1474
1473
@@ -2411,8 +2410,7 @@ void ClangImporter::lookupBridgingHeaderDecls(
2411
2410
bool ClangImporter::lookupDeclsFromHeader (StringRef Filename,
2412
2411
llvm::function_ref<bool (ClangNode)> filter,
2413
2412
llvm::function_ref<void(Decl*)> receiver) const {
2414
- const clang::FileEntry *File =
2415
- getClangPreprocessor ().getFileManager ().getFile (Filename);
2413
+ auto File = getClangPreprocessor ().getFileManager ().getFile (Filename);
2416
2414
if (!File)
2417
2415
return true ;
2418
2416
@@ -2421,7 +2419,7 @@ bool ClangImporter::lookupDeclsFromHeader(StringRef Filename,
2421
2419
auto &ClangPP = getClangPreprocessor ();
2422
2420
2423
2421
// Look up the header in the includes of the bridging header.
2424
- if (Impl.BridgeHeaderFiles .count (File)) {
2422
+ if (Impl.BridgeHeaderFiles .count (* File)) {
2425
2423
auto headerFilter = [&](ClangNode ClangN) -> bool {
2426
2424
if (ClangN.isNull ())
2427
2425
return false ;
@@ -2430,7 +2428,7 @@ bool ClangImporter::lookupDeclsFromHeader(StringRef Filename,
2430
2428
if (ClangLoc.isInvalid ())
2431
2429
return false ;
2432
2430
2433
- if (ClangSM.getFileEntryForID (ClangSM.getFileID (ClangLoc)) != File)
2431
+ if (ClangSM.getFileEntryForID (ClangSM.getFileID (ClangLoc)) != * File)
2434
2432
return false ;
2435
2433
2436
2434
return filter (ClangN);
@@ -2440,7 +2438,7 @@ bool ClangImporter::lookupDeclsFromHeader(StringRef Filename,
2440
2438
return false ;
2441
2439
}
2442
2440
2443
- clang::FileID FID = ClangSM.translateFile (File);
2441
+ clang::FileID FID = ClangSM.translateFile (* File);
2444
2442
if (FID.isInvalid ())
2445
2443
return false ;
2446
2444
0 commit comments