@@ -1180,7 +1180,7 @@ ClangImporter::create(ASTContext &ctx,
1180
1180
bool ClangImporter::addSearchPath (StringRef newSearchPath, bool isFramework,
1181
1181
bool isSystem) {
1182
1182
clang::FileManager &fileMgr = Impl.Instance ->getFileManager ();
1183
- const clang::DirectoryEntry * entry = fileMgr.getDirectory (newSearchPath);
1183
+ auto entry = fileMgr.getDirectory (newSearchPath);
1184
1184
if (!entry)
1185
1185
return true ;
1186
1186
@@ -1189,8 +1189,8 @@ bool ClangImporter::addSearchPath(StringRef newSearchPath, bool isFramework,
1189
1189
headerSearchInfo.search_dir_end (),
1190
1190
[&](const clang::DirectoryLookup &lookup) -> bool {
1191
1191
if (isFramework)
1192
- return lookup.getFrameworkDir () == entry;
1193
- return lookup.getDir () == entry;
1192
+ return lookup.getFrameworkDir () == * entry;
1193
+ return lookup.getDir () == * entry;
1194
1194
});
1195
1195
if (exists) {
1196
1196
// Don't bother adding a search path that's already there. Clang would have
@@ -1199,7 +1199,7 @@ bool ClangImporter::addSearchPath(StringRef newSearchPath, bool isFramework,
1199
1199
}
1200
1200
1201
1201
auto kind = isSystem ? clang::SrcMgr::C_System : clang::SrcMgr::C_User;
1202
- headerSearchInfo.AddSearchPath ({entry, kind, isFramework},
1202
+ headerSearchInfo.AddSearchPath ({* entry, kind, isFramework},
1203
1203
/* isAngled=*/ true );
1204
1204
1205
1205
// In addition to changing the current preprocessor directly, we still need
@@ -1361,10 +1361,9 @@ bool ClangImporter::importHeader(StringRef header, ModuleDecl *adapter,
1361
1361
off_t expectedSize, time_t expectedModTime,
1362
1362
StringRef cachedContents, SourceLoc diagLoc) {
1363
1363
clang::FileManager &fileManager = Impl.Instance ->getFileManager ();
1364
- const clang::FileEntry *headerFile = fileManager.getFile (header,
1365
- /* OpenFile=*/ true );
1366
- if (headerFile && headerFile->getSize () == expectedSize &&
1367
- headerFile->getModificationTime () == expectedModTime) {
1364
+ auto headerFile = fileManager.getFile (header, /* OpenFile=*/ true );
1365
+ if (headerFile && (*headerFile)->getSize () == expectedSize &&
1366
+ (*headerFile)->getModificationTime () == expectedModTime) {
1368
1367
return importBridgingHeader (header, adapter, diagLoc, false , true );
1369
1368
}
1370
1369
@@ -1397,8 +1396,7 @@ bool ClangImporter::importBridgingHeader(StringRef header, ModuleDecl *adapter,
1397
1396
}
1398
1397
1399
1398
clang::FileManager &fileManager = Impl.Instance ->getFileManager ();
1400
- const clang::FileEntry *headerFile = fileManager.getFile (header,
1401
- /* OpenFile=*/ true );
1399
+ auto headerFile = fileManager.getFile (header, /* OpenFile=*/ true );
1402
1400
if (!headerFile) {
1403
1401
Impl.SwiftContext .Diags .diagnose (diagLoc, diag::bridging_header_missing,
1404
1402
header);
@@ -1474,9 +1472,10 @@ std::string ClangImporter::getBridgingHeaderContents(StringRef headerPath,
1474
1472
return " " ;
1475
1473
}
1476
1474
1477
- const clang::FileEntry *fileInfo = fileManager.getFile (headerPath);
1478
- fileSize = fileInfo->getSize ();
1479
- fileModTime = fileInfo->getModificationTime ();
1475
+ if (auto fileInfo = fileManager.getFile (headerPath)) {
1476
+ fileSize = (*fileInfo)->getSize ();
1477
+ fileModTime = (*fileInfo)->getModificationTime ();
1478
+ }
1480
1479
return result;
1481
1480
}
1482
1481
@@ -2410,8 +2409,7 @@ void ClangImporter::lookupBridgingHeaderDecls(
2410
2409
bool ClangImporter::lookupDeclsFromHeader (StringRef Filename,
2411
2410
llvm::function_ref<bool (ClangNode)> filter,
2412
2411
llvm::function_ref<void(Decl*)> receiver) const {
2413
- const clang::FileEntry *File =
2414
- getClangPreprocessor ().getFileManager ().getFile (Filename);
2412
+ auto File = getClangPreprocessor ().getFileManager ().getFile (Filename);
2415
2413
if (!File)
2416
2414
return true ;
2417
2415
@@ -2420,7 +2418,7 @@ bool ClangImporter::lookupDeclsFromHeader(StringRef Filename,
2420
2418
auto &ClangPP = getClangPreprocessor ();
2421
2419
2422
2420
// Look up the header in the includes of the bridging header.
2423
- if (Impl.BridgeHeaderFiles .count (File)) {
2421
+ if (Impl.BridgeHeaderFiles .count (* File)) {
2424
2422
auto headerFilter = [&](ClangNode ClangN) -> bool {
2425
2423
if (ClangN.isNull ())
2426
2424
return false ;
@@ -2429,7 +2427,7 @@ bool ClangImporter::lookupDeclsFromHeader(StringRef Filename,
2429
2427
if (ClangLoc.isInvalid ())
2430
2428
return false ;
2431
2429
2432
- if (ClangSM.getFileEntryForID (ClangSM.getFileID (ClangLoc)) != File)
2430
+ if (ClangSM.getFileEntryForID (ClangSM.getFileID (ClangLoc)) != * File)
2433
2431
return false ;
2434
2432
2435
2433
return filter (ClangN);
@@ -2439,7 +2437,7 @@ bool ClangImporter::lookupDeclsFromHeader(StringRef Filename,
2439
2437
return false ;
2440
2438
}
2441
2439
2442
- clang::FileID FID = ClangSM.translateFile (File);
2440
+ clang::FileID FID = ClangSM.translateFile (* File);
2443
2441
if (FID.isInvalid ())
2444
2442
return false ;
2445
2443
0 commit comments